@bitbybit-dev/ifc 0.0.0-stage → 1.5.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/NOTICE +42 -0
- package/README.md +92 -2
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/lib/api/dto-registry.d.ts +8 -0
- package/lib/api/dto-registry.js +109 -0
- package/lib/api/ifc-service.d.ts +109 -0
- package/lib/api/ifc-service.js +55 -0
- package/lib/api/inputs/base-inputs.d.ts +5 -0
- package/lib/api/inputs/base-inputs.js +5 -0
- package/lib/api/inputs/ifc-inputs.d.ts +2727 -0
- package/lib/api/inputs/ifc-inputs.js +2498 -0
- package/lib/api/inputs/index.d.ts +3 -0
- package/lib/api/inputs/index.js +3 -0
- package/lib/api/resolved-inputs/index.d.ts +70 -0
- package/lib/api/resolved-inputs/index.js +1 -0
- package/lib/api/services/assemblies.d.ts +28 -0
- package/lib/api/services/assemblies.js +49 -0
- package/lib/api/services/beams.d.ts +33 -0
- package/lib/api/services/beams.js +59 -0
- package/lib/api/services/columns.d.ts +26 -0
- package/lib/api/services/columns.js +56 -0
- package/lib/api/services/defaults.constants.d.ts +44 -0
- package/lib/api/services/defaults.constants.js +44 -0
- package/lib/api/services/doors.d.ts +45 -0
- package/lib/api/services/doors.js +94 -0
- package/lib/api/services/geometry.d.ts +51 -0
- package/lib/api/services/geometry.js +87 -0
- package/lib/api/services/index.d.ts +17 -0
- package/lib/api/services/index.js +17 -0
- package/lib/api/services/materials.d.ts +46 -0
- package/lib/api/services/materials.js +86 -0
- package/lib/api/services/member-support.d.ts +7 -0
- package/lib/api/services/member-support.js +29 -0
- package/lib/api/services/members.d.ts +24 -0
- package/lib/api/services/members.js +51 -0
- package/lib/api/services/model.d.ts +244 -0
- package/lib/api/services/model.js +409 -0
- package/lib/api/services/openings.d.ts +57 -0
- package/lib/api/services/openings.js +102 -0
- package/lib/api/services/properties.d.ts +89 -0
- package/lib/api/services/properties.js +142 -0
- package/lib/api/services/quantities.d.ts +38 -0
- package/lib/api/services/quantities.js +51 -0
- package/lib/api/services/roofs.d.ts +24 -0
- package/lib/api/services/roofs.js +52 -0
- package/lib/api/services/service-support.d.ts +8 -0
- package/lib/api/services/service-support.js +37 -0
- package/lib/api/services/service-types.d.ts +3 -0
- package/lib/api/services/service-types.js +1 -0
- package/lib/api/services/site.d.ts +37 -0
- package/lib/api/services/site.js +80 -0
- package/lib/api/services/slabs.d.ts +31 -0
- package/lib/api/services/slabs.js +59 -0
- package/lib/api/services/spaces.d.ts +36 -0
- package/lib/api/services/spaces.js +64 -0
- package/lib/api/services/spatial.d.ts +54 -0
- package/lib/api/services/spatial.js +75 -0
- package/lib/api/services/walls.d.ts +140 -0
- package/lib/api/services/walls.js +268 -0
- package/lib/api/services/windows.d.ts +46 -0
- package/lib/api/services/windows.js +76 -0
- package/lib/build/assemblies.d.ts +4 -0
- package/lib/build/assemblies.js +45 -0
- package/lib/build/build-types.d.ts +345 -0
- package/lib/build/build-types.js +1 -0
- package/lib/build/checks.d.ts +6 -0
- package/lib/build/checks.js +32 -0
- package/lib/build/constants.d.ts +27 -0
- package/lib/build/constants.js +43 -0
- package/lib/build/contexts.d.ts +9 -0
- package/lib/build/contexts.js +52 -0
- package/lib/build/curves.d.ts +3 -0
- package/lib/build/curves.js +23 -0
- package/lib/build/entity-writer.d.ts +23 -0
- package/lib/build/entity-writer.js +97 -0
- package/lib/build/fillings.d.ts +7 -0
- package/lib/build/fillings.js +182 -0
- package/lib/build/georeference.d.ts +5 -0
- package/lib/build/georeference.js +44 -0
- package/lib/build/materials.d.ts +18 -0
- package/lib/build/materials.js +166 -0
- package/lib/build/math.d.ts +10 -0
- package/lib/build/math.js +47 -0
- package/lib/build/measure.d.ts +9 -0
- package/lib/build/measure.js +195 -0
- package/lib/build/moving.d.ts +4 -0
- package/lib/build/moving.js +61 -0
- package/lib/build/openings.d.ts +12 -0
- package/lib/build/openings.js +156 -0
- package/lib/build/outlines.d.ts +4 -0
- package/lib/build/outlines.js +40 -0
- package/lib/build/placement.d.ts +16 -0
- package/lib/build/placement.js +106 -0
- package/lib/build/profiles.d.ts +4 -0
- package/lib/build/profiles.js +35 -0
- package/lib/build/project.d.ts +11 -0
- package/lib/build/project.js +134 -0
- package/lib/build/properties.d.ts +10 -0
- package/lib/build/properties.js +182 -0
- package/lib/build/quantities.d.ts +7 -0
- package/lib/build/quantities.js +262 -0
- package/lib/build/relationships.d.ts +9 -0
- package/lib/build/relationships.js +67 -0
- package/lib/build/removal.d.ts +3 -0
- package/lib/build/removal.js +106 -0
- package/lib/build/representations.d.ts +6 -0
- package/lib/build/representations.js +46 -0
- package/lib/build/roof-clipping.d.ts +5 -0
- package/lib/build/roof-clipping.js +79 -0
- package/lib/build/roofs.d.ts +4 -0
- package/lib/build/roofs.js +131 -0
- package/lib/build/site.d.ts +7 -0
- package/lib/build/site.js +112 -0
- package/lib/build/slab-openings.d.ts +4 -0
- package/lib/build/slab-openings.js +71 -0
- package/lib/build/slabs-columns-beams.d.ts +8 -0
- package/lib/build/slabs-columns-beams.js +73 -0
- package/lib/build/solids.d.ts +5 -0
- package/lib/build/solids.js +33 -0
- package/lib/build/spaces.d.ts +6 -0
- package/lib/build/spaces.js +55 -0
- package/lib/build/spatial.d.ts +17 -0
- package/lib/build/spatial.js +111 -0
- package/lib/build/type-objects.d.ts +4 -0
- package/lib/build/type-objects.js +9 -0
- package/lib/build/wall-edits.d.ts +5 -0
- package/lib/build/wall-edits.js +138 -0
- package/lib/build/wall-geometry.d.ts +15 -0
- package/lib/build/wall-geometry.js +159 -0
- package/lib/build/wall-parameters.d.ts +3 -0
- package/lib/build/wall-parameters.js +47 -0
- package/lib/build/walls.d.ts +12 -0
- package/lib/build/walls.js +238 -0
- package/lib/geometry/advanced.d.ts +27 -0
- package/lib/geometry/advanced.js +292 -0
- package/lib/geometry/colours.d.ts +3 -0
- package/lib/geometry/colours.js +109 -0
- package/lib/geometry/curves.d.ts +32 -0
- package/lib/geometry/curves.js +370 -0
- package/lib/geometry/edges.constants.d.ts +5 -0
- package/lib/geometry/edges.constants.js +5 -0
- package/lib/geometry/edges.d.ts +21 -0
- package/lib/geometry/edges.js +164 -0
- package/lib/geometry/elements.d.ts +3 -0
- package/lib/geometry/elements.js +152 -0
- package/lib/geometry/errors.d.ts +3 -0
- package/lib/geometry/errors.js +6 -0
- package/lib/geometry/faceted.d.ts +31 -0
- package/lib/geometry/faceted.js +214 -0
- package/lib/geometry/geometry-types.d.ts +103 -0
- package/lib/geometry/geometry-types.js +1 -0
- package/lib/geometry/groups.d.ts +21 -0
- package/lib/geometry/groups.js +106 -0
- package/lib/geometry/items.d.ts +34 -0
- package/lib/geometry/items.js +313 -0
- package/lib/geometry/operators.d.ts +3 -0
- package/lib/geometry/operators.js +65 -0
- package/lib/geometry/profiles.d.ts +4 -0
- package/lib/geometry/profiles.js +277 -0
- package/lib/geometry/recipe-builder.d.ts +14 -0
- package/lib/geometry/recipe-builder.js +48 -0
- package/lib/geometry/references.d.ts +4 -0
- package/lib/geometry/references.js +17 -0
- package/lib/geometry/regions.d.ts +4 -0
- package/lib/geometry/regions.js +26 -0
- package/lib/geometry/surfaces.constants.d.ts +17 -0
- package/lib/geometry/surfaces.constants.js +17 -0
- package/lib/geometry/surfaces.d.ts +6 -0
- package/lib/geometry/surfaces.js +306 -0
- package/lib/geometry/swept-solids.constants.d.ts +7 -0
- package/lib/geometry/swept-solids.constants.js +6 -0
- package/lib/geometry/swept-solids.d.ts +25 -0
- package/lib/geometry/swept-solids.js +243 -0
- package/lib/index.d.ts +6 -0
- package/lib/index.js +6 -0
- package/lib/model/constants.d.ts +30 -0
- package/lib/model/constants.js +30 -0
- package/lib/model/entity-lookup.d.ts +9 -0
- package/lib/model/entity-lookup.js +20 -0
- package/lib/model/guid.d.ts +7 -0
- package/lib/model/guid.js +60 -0
- package/lib/model/id-map.d.ts +10 -0
- package/lib/model/id-map.js +80 -0
- package/lib/model/index.d.ts +4 -0
- package/lib/model/index.js +2 -0
- package/lib/model/io.d.ts +6 -0
- package/lib/model/io.js +136 -0
- package/lib/model/is-model.d.ts +9 -0
- package/lib/model/is-model.js +11 -0
- package/lib/model/model-types.d.ts +111 -0
- package/lib/model/model-types.js +1 -0
- package/lib/model/overlay-indexes.d.ts +17 -0
- package/lib/model/overlay-indexes.js +69 -0
- package/lib/model/references.d.ts +2 -0
- package/lib/model/references.js +51 -0
- package/lib/model/rows-by-id.d.ts +8 -0
- package/lib/model/rows-by-id.js +39 -0
- package/lib/model/snapshot.d.ts +36 -0
- package/lib/model/snapshot.js +144 -0
- package/lib/model/source.d.ts +29 -0
- package/lib/model/source.js +172 -0
- package/lib/model/transaction.d.ts +39 -0
- package/lib/model/transaction.js +250 -0
- package/lib/model/upgrade.d.ts +2 -0
- package/lib/model/upgrade.js +78 -0
- package/lib/schema/constants.d.ts +3 -0
- package/lib/schema/constants.js +3 -0
- package/lib/schema/generated/ifc4.d.ts +2 -0
- package/lib/schema/generated/ifc4.js +1204 -0
- package/lib/schema/generated/ifc4x3.d.ts +2 -0
- package/lib/schema/generated/ifc4x3.js +1325 -0
- package/lib/schema/registry.d.ts +7 -0
- package/lib/schema/registry.js +37 -0
- package/lib/schema/schema-types.d.ts +45 -0
- package/lib/schema/schema-types.js +1 -0
- package/lib/schema/schema.d.ts +23 -0
- package/lib/schema/schema.js +136 -0
- package/lib/step/constants.d.ts +48 -0
- package/lib/step/constants.js +48 -0
- package/lib/step/encoder.d.ts +21 -0
- package/lib/step/encoder.js +321 -0
- package/lib/step/errors.d.ts +39 -0
- package/lib/step/errors.js +45 -0
- package/lib/step/file-index.d.ts +2 -0
- package/lib/step/file-index.js +221 -0
- package/lib/step/header.d.ts +4 -0
- package/lib/step/header.js +52 -0
- package/lib/step/numbers.d.ts +3 -0
- package/lib/step/numbers.js +73 -0
- package/lib/step/reader.d.ts +2 -0
- package/lib/step/reader.js +160 -0
- package/lib/step/scanner.d.ts +13 -0
- package/lib/step/scanner.js +203 -0
- package/lib/step/step-types.d.ts +170 -0
- package/lib/step/step-types.js +1 -0
- package/lib/step/strings.d.ts +2 -0
- package/lib/step/strings.js +150 -0
- package/lib/step/values.d.ts +13 -0
- package/lib/step/values.js +51 -0
- package/package.json +51 -5
|
@@ -0,0 +1,2498 @@
|
|
|
1
|
+
// GENERATED by scripts/gen-inputs.mjs from the fragments in ./ifc/ - do not edit; edit a fragment and run `npm run gen:inputs`.
|
|
2
|
+
/**
|
|
3
|
+
* Every parameter object the IFC library accepts. IFC is the open BIM exchange format: a model is a
|
|
4
|
+
* graph of building elements, the storeys that contain them, their materials, types and properties,
|
|
5
|
+
* with geometry kept as parametric extrusions and clippings.
|
|
6
|
+
*
|
|
7
|
+
* Every method that changes a model takes one and returns a new one, leaving the one it was given
|
|
8
|
+
* as it was, so keep the result and pass it on. Lengths are in the model's length unit, millimetres
|
|
9
|
+
* unless the model was created with another; positions on a storey are in its plan, X and Y, with Z
|
|
10
|
+
* up from the storey's elevation. Experimental, as the IFC library is.
|
|
11
|
+
* @beta
|
|
12
|
+
*/
|
|
13
|
+
export var IFC;
|
|
14
|
+
(function (IFC) {
|
|
15
|
+
/**
|
|
16
|
+
* The length unit a new model is written in. Every length a method takes or returns is in this unit.
|
|
17
|
+
*/
|
|
18
|
+
let lengthUnitEnum;
|
|
19
|
+
(function (lengthUnitEnum) {
|
|
20
|
+
/**
|
|
21
|
+
* Lengths in millimetres, as most building models are written.
|
|
22
|
+
*/
|
|
23
|
+
lengthUnitEnum["millimetre"] = "millimetre";
|
|
24
|
+
/**
|
|
25
|
+
* Lengths in centimetres.
|
|
26
|
+
*/
|
|
27
|
+
lengthUnitEnum["centimetre"] = "centimetre";
|
|
28
|
+
/**
|
|
29
|
+
* Lengths in metres.
|
|
30
|
+
*/
|
|
31
|
+
lengthUnitEnum["metre"] = "metre";
|
|
32
|
+
})(lengthUnitEnum = IFC.lengthUnitEnum || (IFC.lengthUnitEnum = {}));
|
|
33
|
+
/**
|
|
34
|
+
* Which side of its axis a wall's layers lie on, looking from the wall's start to its end: centred on
|
|
35
|
+
* the axis, to its left, or to its right.
|
|
36
|
+
*/
|
|
37
|
+
let wallAlignmentEnum;
|
|
38
|
+
(function (wallAlignmentEnum) {
|
|
39
|
+
/**
|
|
40
|
+
* The layers are centred on the axis.
|
|
41
|
+
*/
|
|
42
|
+
wallAlignmentEnum["center"] = "center";
|
|
43
|
+
/**
|
|
44
|
+
* The layers lie to the left of the axis.
|
|
45
|
+
*/
|
|
46
|
+
wallAlignmentEnum["left"] = "left";
|
|
47
|
+
/**
|
|
48
|
+
* The layers lie to the right of the axis.
|
|
49
|
+
*/
|
|
50
|
+
wallAlignmentEnum["right"] = "right";
|
|
51
|
+
})(wallAlignmentEnum = IFC.wallAlignmentEnum || (IFC.wallAlignmentEnum = {}));
|
|
52
|
+
/**
|
|
53
|
+
* Where on a wall another wall meets it: at its start, at its end, or somewhere along its length.
|
|
54
|
+
*/
|
|
55
|
+
let wallEndEnum;
|
|
56
|
+
(function (wallEndEnum) {
|
|
57
|
+
/**
|
|
58
|
+
* At the start of its axis.
|
|
59
|
+
*/
|
|
60
|
+
wallEndEnum["start"] = "start";
|
|
61
|
+
/**
|
|
62
|
+
* At the end of its axis.
|
|
63
|
+
*/
|
|
64
|
+
wallEndEnum["end"] = "end";
|
|
65
|
+
/**
|
|
66
|
+
* Somewhere along its length, as the stem of a T meets the wall it ends against.
|
|
67
|
+
*/
|
|
68
|
+
wallEndEnum["along"] = "along";
|
|
69
|
+
})(wallEndEnum = IFC.wallEndEnum || (IFC.wallEndEnum = {}));
|
|
70
|
+
/**
|
|
71
|
+
* What kind of wall it is, as IFC classifies walls.
|
|
72
|
+
*/
|
|
73
|
+
let wallPredefinedTypeEnum;
|
|
74
|
+
(function (wallPredefinedTypeEnum) {
|
|
75
|
+
/**
|
|
76
|
+
* A straight wall of constant thickness, the common case.
|
|
77
|
+
*/
|
|
78
|
+
wallPredefinedTypeEnum["standard"] = "STANDARD";
|
|
79
|
+
/**
|
|
80
|
+
* A wall of solid construction, such as masonry.
|
|
81
|
+
*/
|
|
82
|
+
wallPredefinedTypeEnum["solidWall"] = "SOLIDWALL";
|
|
83
|
+
/**
|
|
84
|
+
* A wall that divides a space without carrying load.
|
|
85
|
+
*/
|
|
86
|
+
wallPredefinedTypeEnum["partitioning"] = "PARTITIONING";
|
|
87
|
+
/**
|
|
88
|
+
* A wall that resists lateral forces.
|
|
89
|
+
*/
|
|
90
|
+
wallPredefinedTypeEnum["shear"] = "SHEAR";
|
|
91
|
+
/**
|
|
92
|
+
* A low wall along the edge of a roof or balcony.
|
|
93
|
+
*/
|
|
94
|
+
wallPredefinedTypeEnum["parapet"] = "PARAPET";
|
|
95
|
+
/**
|
|
96
|
+
* A wall that can be moved, such as a folding partition.
|
|
97
|
+
*/
|
|
98
|
+
wallPredefinedTypeEnum["movable"] = "MOVABLE";
|
|
99
|
+
/**
|
|
100
|
+
* A wall that carries pipes, such as a service wall.
|
|
101
|
+
*/
|
|
102
|
+
wallPredefinedTypeEnum["plumbingWall"] = "PLUMBINGWALL";
|
|
103
|
+
/**
|
|
104
|
+
* No kind is given.
|
|
105
|
+
*/
|
|
106
|
+
wallPredefinedTypeEnum["notDefined"] = "NOTDEFINED";
|
|
107
|
+
})(wallPredefinedTypeEnum = IFC.wallPredefinedTypeEnum || (IFC.wallPredefinedTypeEnum = {}));
|
|
108
|
+
/**
|
|
109
|
+
* The shape of a roof over a rectangle: flat, sloping one way, two slopes meeting at a ridge, or four
|
|
110
|
+
* slopes meeting at a ridge or a point.
|
|
111
|
+
*/
|
|
112
|
+
let roofKindEnum;
|
|
113
|
+
(function (roofKindEnum) {
|
|
114
|
+
/**
|
|
115
|
+
* Flat, one level slab.
|
|
116
|
+
*/
|
|
117
|
+
roofKindEnum["flat"] = "flat";
|
|
118
|
+
/**
|
|
119
|
+
* One slope, rising from the outline's first side to the opposite side.
|
|
120
|
+
*/
|
|
121
|
+
roofKindEnum["monoPitch"] = "monoPitch";
|
|
122
|
+
/**
|
|
123
|
+
* Two slopes rising from the first side and the opposite side to a ridge between them.
|
|
124
|
+
*/
|
|
125
|
+
roofKindEnum["gable"] = "gable";
|
|
126
|
+
/**
|
|
127
|
+
* Four slopes rising from every side, to a ridge along the longer sides or, over a square, to a
|
|
128
|
+
* point.
|
|
129
|
+
*/
|
|
130
|
+
roofKindEnum["hip"] = "hip";
|
|
131
|
+
})(roofKindEnum = IFC.roofKindEnum || (IFC.roofKindEnum = {}));
|
|
132
|
+
/**
|
|
133
|
+
* What kind of member it is, as IFC classifies the linear parts of frames, roofs and facades.
|
|
134
|
+
*/
|
|
135
|
+
let memberPredefinedTypeEnum;
|
|
136
|
+
(function (memberPredefinedTypeEnum) {
|
|
137
|
+
/**
|
|
138
|
+
* A diagonal that stiffens a frame.
|
|
139
|
+
*/
|
|
140
|
+
memberPredefinedTypeEnum["brace"] = "BRACE";
|
|
141
|
+
/**
|
|
142
|
+
* The top or bottom edge of a truss.
|
|
143
|
+
*/
|
|
144
|
+
memberPredefinedTypeEnum["chord"] = "CHORD";
|
|
145
|
+
/**
|
|
146
|
+
* A horizontal tie between two rafters.
|
|
147
|
+
*/
|
|
148
|
+
memberPredefinedTypeEnum["collar"] = "COLLAR";
|
|
149
|
+
/**
|
|
150
|
+
* A member of no more particular kind.
|
|
151
|
+
*/
|
|
152
|
+
memberPredefinedTypeEnum["member"] = "MEMBER";
|
|
153
|
+
/**
|
|
154
|
+
* A vertical between panes of a window or a curtain wall.
|
|
155
|
+
*/
|
|
156
|
+
memberPredefinedTypeEnum["mullion"] = "MULLION";
|
|
157
|
+
/**
|
|
158
|
+
* A flat member, such as a gusset.
|
|
159
|
+
*/
|
|
160
|
+
memberPredefinedTypeEnum["plate"] = "PLATE";
|
|
161
|
+
/**
|
|
162
|
+
* A vertical support, such as a fence post.
|
|
163
|
+
*/
|
|
164
|
+
memberPredefinedTypeEnum["post"] = "POST";
|
|
165
|
+
/**
|
|
166
|
+
* A horizontal member that carries roof covering across rafters.
|
|
167
|
+
*/
|
|
168
|
+
memberPredefinedTypeEnum["purlin"] = "PURLIN";
|
|
169
|
+
/**
|
|
170
|
+
* A sloping member that carries a roof.
|
|
171
|
+
*/
|
|
172
|
+
memberPredefinedTypeEnum["rafter"] = "RAFTER";
|
|
173
|
+
/**
|
|
174
|
+
* A sloping member that carries the treads of a stair.
|
|
175
|
+
*/
|
|
176
|
+
memberPredefinedTypeEnum["stringer"] = "STRINGER";
|
|
177
|
+
/**
|
|
178
|
+
* A member that takes compression along its length.
|
|
179
|
+
*/
|
|
180
|
+
memberPredefinedTypeEnum["strut"] = "STRUT";
|
|
181
|
+
/**
|
|
182
|
+
* A vertical member of a framed wall.
|
|
183
|
+
*/
|
|
184
|
+
memberPredefinedTypeEnum["stud"] = "STUD";
|
|
185
|
+
/**
|
|
186
|
+
* Not said.
|
|
187
|
+
*/
|
|
188
|
+
memberPredefinedTypeEnum["notDefined"] = "NOTDEFINED";
|
|
189
|
+
})(memberPredefinedTypeEnum = IFC.memberPredefinedTypeEnum || (IFC.memberPredefinedTypeEnum = {}));
|
|
190
|
+
/**
|
|
191
|
+
* What kind of assembly it is, as IFC classifies elements made of other elements.
|
|
192
|
+
*/
|
|
193
|
+
let elementAssemblyPredefinedTypeEnum;
|
|
194
|
+
(function (elementAssemblyPredefinedTypeEnum) {
|
|
195
|
+
/**
|
|
196
|
+
* Parts that support or connect others, such as a bracket with its fixings.
|
|
197
|
+
*/
|
|
198
|
+
elementAssemblyPredefinedTypeEnum["accessoryAssembly"] = "ACCESSORY_ASSEMBLY";
|
|
199
|
+
/**
|
|
200
|
+
* An arch.
|
|
201
|
+
*/
|
|
202
|
+
elementAssemblyPredefinedTypeEnum["arch"] = "ARCH";
|
|
203
|
+
/**
|
|
204
|
+
* Beams laid in a grid.
|
|
205
|
+
*/
|
|
206
|
+
elementAssemblyPredefinedTypeEnum["beamGrid"] = "BEAM_GRID";
|
|
207
|
+
/**
|
|
208
|
+
* A frame stiffened by diagonal braces.
|
|
209
|
+
*/
|
|
210
|
+
elementAssemblyPredefinedTypeEnum["bracedFrame"] = "BRACED_FRAME";
|
|
211
|
+
/**
|
|
212
|
+
* A girder built up of plates and members.
|
|
213
|
+
*/
|
|
214
|
+
elementAssemblyPredefinedTypeEnum["girder"] = "GIRDER";
|
|
215
|
+
/**
|
|
216
|
+
* A cage of reinforcing bars placed as one.
|
|
217
|
+
*/
|
|
218
|
+
elementAssemblyPredefinedTypeEnum["reinforcementUnit"] = "REINFORCEMENT_UNIT";
|
|
219
|
+
/**
|
|
220
|
+
* A frame whose joints hold it rigid without braces.
|
|
221
|
+
*/
|
|
222
|
+
elementAssemblyPredefinedTypeEnum["rigidFrame"] = "RIGID_FRAME";
|
|
223
|
+
/**
|
|
224
|
+
* A field of slabs laid together.
|
|
225
|
+
*/
|
|
226
|
+
elementAssemblyPredefinedTypeEnum["slabField"] = "SLAB_FIELD";
|
|
227
|
+
/**
|
|
228
|
+
* A truss.
|
|
229
|
+
*/
|
|
230
|
+
elementAssemblyPredefinedTypeEnum["truss"] = "TRUSS";
|
|
231
|
+
/**
|
|
232
|
+
* A kind IFC does not name, such as a cladding of boards; `objectType` says what it is.
|
|
233
|
+
*/
|
|
234
|
+
elementAssemblyPredefinedTypeEnum["userDefined"] = "USERDEFINED";
|
|
235
|
+
/**
|
|
236
|
+
* An assembly of no particular kind.
|
|
237
|
+
*/
|
|
238
|
+
elementAssemblyPredefinedTypeEnum["notDefined"] = "NOTDEFINED";
|
|
239
|
+
})(elementAssemblyPredefinedTypeEnum = IFC.elementAssemblyPredefinedTypeEnum || (IFC.elementAssemblyPredefinedTypeEnum = {}));
|
|
240
|
+
/**
|
|
241
|
+
* What kind of space it is, as IFC classifies spaces.
|
|
242
|
+
*/
|
|
243
|
+
let spacePredefinedTypeEnum;
|
|
244
|
+
(function (spacePredefinedTypeEnum) {
|
|
245
|
+
/**
|
|
246
|
+
* A room or an area of a storey.
|
|
247
|
+
*/
|
|
248
|
+
spacePredefinedTypeEnum["space"] = "SPACE";
|
|
249
|
+
/**
|
|
250
|
+
* A parking bay.
|
|
251
|
+
*/
|
|
252
|
+
spacePredefinedTypeEnum["parking"] = "PARKING";
|
|
253
|
+
/**
|
|
254
|
+
* The gross floor area of a storey, measured around its outside.
|
|
255
|
+
*/
|
|
256
|
+
spacePredefinedTypeEnum["gfa"] = "GFA";
|
|
257
|
+
/**
|
|
258
|
+
* An enclosed space inside the building.
|
|
259
|
+
*/
|
|
260
|
+
spacePredefinedTypeEnum["internal"] = "INTERNAL";
|
|
261
|
+
/**
|
|
262
|
+
* A space outside the building, such as a terrace.
|
|
263
|
+
*/
|
|
264
|
+
spacePredefinedTypeEnum["external"] = "EXTERNAL";
|
|
265
|
+
/**
|
|
266
|
+
* Not said.
|
|
267
|
+
*/
|
|
268
|
+
spacePredefinedTypeEnum["notDefined"] = "NOTDEFINED";
|
|
269
|
+
})(spacePredefinedTypeEnum = IFC.spacePredefinedTypeEnum || (IFC.spacePredefinedTypeEnum = {}));
|
|
270
|
+
/**
|
|
271
|
+
* What kind of slab it is, as IFC classifies slabs.
|
|
272
|
+
*/
|
|
273
|
+
let slabPredefinedTypeEnum;
|
|
274
|
+
(function (slabPredefinedTypeEnum) {
|
|
275
|
+
/**
|
|
276
|
+
* A floor slab.
|
|
277
|
+
*/
|
|
278
|
+
slabPredefinedTypeEnum["floor"] = "FLOOR";
|
|
279
|
+
/**
|
|
280
|
+
* A roof slab.
|
|
281
|
+
*/
|
|
282
|
+
slabPredefinedTypeEnum["roof"] = "ROOF";
|
|
283
|
+
/**
|
|
284
|
+
* A landing of a stair.
|
|
285
|
+
*/
|
|
286
|
+
slabPredefinedTypeEnum["landing"] = "LANDING";
|
|
287
|
+
/**
|
|
288
|
+
* A slab on the ground, at the base of the building.
|
|
289
|
+
*/
|
|
290
|
+
slabPredefinedTypeEnum["baseSlab"] = "BASESLAB";
|
|
291
|
+
/**
|
|
292
|
+
* No kind is given.
|
|
293
|
+
*/
|
|
294
|
+
slabPredefinedTypeEnum["notDefined"] = "NOTDEFINED";
|
|
295
|
+
})(slabPredefinedTypeEnum = IFC.slabPredefinedTypeEnum || (IFC.slabPredefinedTypeEnum = {}));
|
|
296
|
+
/**
|
|
297
|
+
* How a single-panel door opens, as IFC names its operation types. The door's geometry is the same
|
|
298
|
+
* panel for each; the operation is what other tools read to draw its swing. Left and right are as IFC
|
|
299
|
+
* defines them, seen looking along the door's Y axis, which points to its wall's left: standing on the
|
|
300
|
+
* wall's right side, with the wall's start on your left, a left door is hinged toward the wall's start
|
|
301
|
+
* and a right door toward its end. The handle is on the other edge.
|
|
302
|
+
*/
|
|
303
|
+
let doorOperationEnum;
|
|
304
|
+
(function (doorOperationEnum) {
|
|
305
|
+
/**
|
|
306
|
+
* One panel swinging, hinged on the left.
|
|
307
|
+
*/
|
|
308
|
+
doorOperationEnum["singleSwingLeft"] = "SINGLE_SWING_LEFT";
|
|
309
|
+
/**
|
|
310
|
+
* One panel swinging, hinged on the right.
|
|
311
|
+
*/
|
|
312
|
+
doorOperationEnum["singleSwingRight"] = "SINGLE_SWING_RIGHT";
|
|
313
|
+
/**
|
|
314
|
+
* One panel swinging both ways, hinged on the left.
|
|
315
|
+
*/
|
|
316
|
+
doorOperationEnum["doubleSwingLeft"] = "DOUBLE_SWING_LEFT";
|
|
317
|
+
/**
|
|
318
|
+
* One panel swinging both ways, hinged on the right.
|
|
319
|
+
*/
|
|
320
|
+
doorOperationEnum["doubleSwingRight"] = "DOUBLE_SWING_RIGHT";
|
|
321
|
+
/**
|
|
322
|
+
* One panel sliding to the left.
|
|
323
|
+
*/
|
|
324
|
+
doorOperationEnum["slidingToLeft"] = "SLIDING_TO_LEFT";
|
|
325
|
+
/**
|
|
326
|
+
* One panel sliding to the right.
|
|
327
|
+
*/
|
|
328
|
+
doorOperationEnum["slidingToRight"] = "SLIDING_TO_RIGHT";
|
|
329
|
+
/**
|
|
330
|
+
* One panel folding to the left.
|
|
331
|
+
*/
|
|
332
|
+
doorOperationEnum["foldingToLeft"] = "FOLDING_TO_LEFT";
|
|
333
|
+
/**
|
|
334
|
+
* One panel folding to the right.
|
|
335
|
+
*/
|
|
336
|
+
doorOperationEnum["foldingToRight"] = "FOLDING_TO_RIGHT";
|
|
337
|
+
/**
|
|
338
|
+
* A revolving door.
|
|
339
|
+
*/
|
|
340
|
+
doorOperationEnum["revolving"] = "REVOLVING";
|
|
341
|
+
/**
|
|
342
|
+
* A door that rolls up.
|
|
343
|
+
*/
|
|
344
|
+
doorOperationEnum["rollingUp"] = "ROLLINGUP";
|
|
345
|
+
/**
|
|
346
|
+
* No kind is given.
|
|
347
|
+
*/
|
|
348
|
+
doorOperationEnum["notDefined"] = "NOTDEFINED";
|
|
349
|
+
})(doorOperationEnum = IFC.doorOperationEnum || (IFC.doorOperationEnum = {}));
|
|
350
|
+
/**
|
|
351
|
+
* The handle a door type carries on both faces of its panel, on the side away from its hinges.
|
|
352
|
+
*/
|
|
353
|
+
let doorHandleEnum;
|
|
354
|
+
(function (doorHandleEnum) {
|
|
355
|
+
/**
|
|
356
|
+
* No handle.
|
|
357
|
+
*/
|
|
358
|
+
doorHandleEnum["none"] = "none";
|
|
359
|
+
/**
|
|
360
|
+
* A lever handle at hand height.
|
|
361
|
+
*/
|
|
362
|
+
doorHandleEnum["lever"] = "lever";
|
|
363
|
+
/**
|
|
364
|
+
* A long upright pull bar, as on an entrance door.
|
|
365
|
+
*/
|
|
366
|
+
doorHandleEnum["pullBar"] = "pullBar";
|
|
367
|
+
})(doorHandleEnum = IFC.doorHandleEnum || (IFC.doorHandleEnum = {}));
|
|
368
|
+
/**
|
|
369
|
+
* The shape of the section a column or beam is extruded from: a rectangle, a circle or an I section.
|
|
370
|
+
*/
|
|
371
|
+
let profileKindEnum;
|
|
372
|
+
(function (profileKindEnum) {
|
|
373
|
+
/**
|
|
374
|
+
* A rectangle of `width` by `depth`.
|
|
375
|
+
*/
|
|
376
|
+
profileKindEnum["rectangle"] = "rectangle";
|
|
377
|
+
/**
|
|
378
|
+
* A circle of `radius`.
|
|
379
|
+
*/
|
|
380
|
+
profileKindEnum["circle"] = "circle";
|
|
381
|
+
/**
|
|
382
|
+
* An I section of `width` and `depth`, with `webThickness` and `flangeThickness`.
|
|
383
|
+
*/
|
|
384
|
+
profileKindEnum["iShape"] = "iShape";
|
|
385
|
+
})(profileKindEnum = IFC.profileKindEnum || (IFC.profileKindEnum = {}));
|
|
386
|
+
/**
|
|
387
|
+
* A model to read, for the methods that only look at it, such as `model.summary` and
|
|
388
|
+
* `spatial.storeys`.
|
|
389
|
+
*/
|
|
390
|
+
class ModelDto {
|
|
391
|
+
constructor(model) {
|
|
392
|
+
if (model !== undefined) {
|
|
393
|
+
this.model = model;
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
IFC.ModelDto = ModelDto;
|
|
398
|
+
/**
|
|
399
|
+
* What `model.create` starts a new model with: a project, its site and one building, in the length
|
|
400
|
+
* unit every later length is given in.
|
|
401
|
+
*/
|
|
402
|
+
class CreateModelDto {
|
|
403
|
+
constructor(name, siteName, buildingName, lengthUnit, seed, author, organization) {
|
|
404
|
+
/**
|
|
405
|
+
* The project's name.
|
|
406
|
+
* @default Project
|
|
407
|
+
*/
|
|
408
|
+
this.name = "Project";
|
|
409
|
+
/**
|
|
410
|
+
* The site's name.
|
|
411
|
+
* @default Site
|
|
412
|
+
*/
|
|
413
|
+
this.siteName = "Site";
|
|
414
|
+
/**
|
|
415
|
+
* What the one building the model starts with is called.
|
|
416
|
+
* @default Building
|
|
417
|
+
*/
|
|
418
|
+
this.buildingName = "Building";
|
|
419
|
+
/**
|
|
420
|
+
* The unit every length of the model is given and written in.
|
|
421
|
+
* @default millimetre
|
|
422
|
+
*/
|
|
423
|
+
this.lengthUnit = lengthUnitEnum.millimetre;
|
|
424
|
+
if (name !== undefined) {
|
|
425
|
+
this.name = name;
|
|
426
|
+
}
|
|
427
|
+
if (siteName !== undefined) {
|
|
428
|
+
this.siteName = siteName;
|
|
429
|
+
}
|
|
430
|
+
if (buildingName !== undefined) {
|
|
431
|
+
this.buildingName = buildingName;
|
|
432
|
+
}
|
|
433
|
+
if (lengthUnit !== undefined) {
|
|
434
|
+
this.lengthUnit = lengthUnit;
|
|
435
|
+
}
|
|
436
|
+
if (seed !== undefined) {
|
|
437
|
+
this.seed = seed;
|
|
438
|
+
}
|
|
439
|
+
if (author !== undefined) {
|
|
440
|
+
this.author = author;
|
|
441
|
+
}
|
|
442
|
+
if (organization !== undefined) {
|
|
443
|
+
this.organization = organization;
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
IFC.CreateModelDto = CreateModelDto;
|
|
448
|
+
/**
|
|
449
|
+
* The contents of an IFC file for `model.read`, as text or bytes.
|
|
450
|
+
*/
|
|
451
|
+
class ReadModelDto {
|
|
452
|
+
constructor(data) {
|
|
453
|
+
if (data !== undefined) {
|
|
454
|
+
this.data = data;
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
IFC.ReadModelDto = ReadModelDto;
|
|
459
|
+
/**
|
|
460
|
+
* A model to write for `model.write`, with the file name and time its header records.
|
|
461
|
+
*/
|
|
462
|
+
class WriteModelDto {
|
|
463
|
+
constructor(model, fileName, timeStamp) {
|
|
464
|
+
/**
|
|
465
|
+
* The file name the header records.
|
|
466
|
+
* @default model.ifc
|
|
467
|
+
*/
|
|
468
|
+
this.fileName = "model.ifc";
|
|
469
|
+
if (model !== undefined) {
|
|
470
|
+
this.model = model;
|
|
471
|
+
}
|
|
472
|
+
if (fileName !== undefined) {
|
|
473
|
+
this.fileName = fileName;
|
|
474
|
+
}
|
|
475
|
+
if (timeStamp !== undefined) {
|
|
476
|
+
this.timeStamp = timeStamp;
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
IFC.WriteModelDto = WriteModelDto;
|
|
481
|
+
/**
|
|
482
|
+
* A model and a filter for `model.elements`, which lists the elements of one type, optionally on one
|
|
483
|
+
* storey.
|
|
484
|
+
*/
|
|
485
|
+
class ElementsDto {
|
|
486
|
+
constructor(model, type, storey) {
|
|
487
|
+
/**
|
|
488
|
+
* The IFC type to list, its subtypes included, such as `IfcWall`, `IfcBuildingElement` for walls,
|
|
489
|
+
* slabs, doors and the like, or `IfcElement` for every element, openings included.
|
|
490
|
+
* @default IfcElement
|
|
491
|
+
*/
|
|
492
|
+
this.type = "IfcElement";
|
|
493
|
+
if (model !== undefined) {
|
|
494
|
+
this.model = model;
|
|
495
|
+
}
|
|
496
|
+
if (type !== undefined) {
|
|
497
|
+
this.type = type;
|
|
498
|
+
}
|
|
499
|
+
if (storey !== undefined) {
|
|
500
|
+
this.storey = storey;
|
|
501
|
+
}
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
IFC.ElementsDto = ElementsDto;
|
|
505
|
+
/**
|
|
506
|
+
* A model and one of its objects, by GlobalId or by the id it was added with, for `model.element`,
|
|
507
|
+
* `model.remove`, `properties.getSets` and `quantities.get`.
|
|
508
|
+
*/
|
|
509
|
+
class ElementDto {
|
|
510
|
+
constructor(model, element) {
|
|
511
|
+
if (model !== undefined) {
|
|
512
|
+
this.model = model;
|
|
513
|
+
}
|
|
514
|
+
if (element !== undefined) {
|
|
515
|
+
this.element = element;
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
}
|
|
519
|
+
IFC.ElementDto = ElementDto;
|
|
520
|
+
/**
|
|
521
|
+
* One attribute of an object to set for `model.setAttribute`, such as a wall's `Name` or `Tag`.
|
|
522
|
+
*/
|
|
523
|
+
class SetAttributeDto {
|
|
524
|
+
constructor(model, element, attribute, value) {
|
|
525
|
+
/**
|
|
526
|
+
* The attribute's name, as the IFC schema spells it, such as `Name`, `Description` or `Tag`.
|
|
527
|
+
* @default Name
|
|
528
|
+
*/
|
|
529
|
+
this.attribute = "Name";
|
|
530
|
+
if (model !== undefined) {
|
|
531
|
+
this.model = model;
|
|
532
|
+
}
|
|
533
|
+
if (element !== undefined) {
|
|
534
|
+
this.element = element;
|
|
535
|
+
}
|
|
536
|
+
if (attribute !== undefined) {
|
|
537
|
+
this.attribute = attribute;
|
|
538
|
+
}
|
|
539
|
+
if (value !== undefined) {
|
|
540
|
+
this.value = value;
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
}
|
|
544
|
+
IFC.SetAttributeDto = SetAttributeDto;
|
|
545
|
+
/**
|
|
546
|
+
* An object's attribute to read for `model.getAttribute`.
|
|
547
|
+
*/
|
|
548
|
+
class GetAttributeDto {
|
|
549
|
+
constructor(model, element, attribute) {
|
|
550
|
+
/**
|
|
551
|
+
* The attribute's name, as the IFC schema spells it, such as `Name`, `Description` or `Tag`.
|
|
552
|
+
* @default Name
|
|
553
|
+
*/
|
|
554
|
+
this.attribute = "Name";
|
|
555
|
+
if (model !== undefined) {
|
|
556
|
+
this.model = model;
|
|
557
|
+
}
|
|
558
|
+
if (element !== undefined) {
|
|
559
|
+
this.element = element;
|
|
560
|
+
}
|
|
561
|
+
if (attribute !== undefined) {
|
|
562
|
+
this.attribute = attribute;
|
|
563
|
+
}
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
IFC.GetAttributeDto = GetAttributeDto;
|
|
567
|
+
/**
|
|
568
|
+
* A model and an id for `model.globalIdOf`, which says which GlobalId the id stands for.
|
|
569
|
+
*/
|
|
570
|
+
class GlobalIdOfDto {
|
|
571
|
+
constructor(model, id) {
|
|
572
|
+
if (model !== undefined) {
|
|
573
|
+
this.model = model;
|
|
574
|
+
}
|
|
575
|
+
if (id !== undefined) {
|
|
576
|
+
this.id = id;
|
|
577
|
+
}
|
|
578
|
+
}
|
|
579
|
+
}
|
|
580
|
+
IFC.GlobalIdOfDto = GlobalIdOfDto;
|
|
581
|
+
/**
|
|
582
|
+
* How far to move an element and how far to turn it, for `model.move`.
|
|
583
|
+
*/
|
|
584
|
+
class MoveElementDto {
|
|
585
|
+
constructor(model, element, translation, rotation) {
|
|
586
|
+
/**
|
|
587
|
+
* How far to move it, as `[x, y, z]` in the plan of its storey: X and Y in plan, Z up.
|
|
588
|
+
* @default [0, 0, 0]
|
|
589
|
+
*/
|
|
590
|
+
this.translation = [0, 0, 0];
|
|
591
|
+
/**
|
|
592
|
+
* How far to turn it, in degrees counterclockwise seen from above, about the vertical through
|
|
593
|
+
* its own origin; it turns before it moves.
|
|
594
|
+
* @default 0
|
|
595
|
+
* @minimum -Infinity
|
|
596
|
+
* @maximum Infinity
|
|
597
|
+
*/
|
|
598
|
+
this.rotation = 0;
|
|
599
|
+
if (model !== undefined) {
|
|
600
|
+
this.model = model;
|
|
601
|
+
}
|
|
602
|
+
if (element !== undefined) {
|
|
603
|
+
this.element = element;
|
|
604
|
+
}
|
|
605
|
+
if (translation !== undefined) {
|
|
606
|
+
this.translation = translation;
|
|
607
|
+
}
|
|
608
|
+
if (rotation !== undefined) {
|
|
609
|
+
this.rotation = rotation;
|
|
610
|
+
}
|
|
611
|
+
}
|
|
612
|
+
}
|
|
613
|
+
IFC.MoveElementDto = MoveElementDto;
|
|
614
|
+
/**
|
|
615
|
+
* A storey to add to the model's building for `spatial.addStorey`, at its elevation above the
|
|
616
|
+
* building's origin.
|
|
617
|
+
*/
|
|
618
|
+
class AddStoreyDto {
|
|
619
|
+
constructor(model, id, name, elevation) {
|
|
620
|
+
/**
|
|
621
|
+
* What the storey is called, such as `Ground floor`.
|
|
622
|
+
* @default Storey
|
|
623
|
+
*/
|
|
624
|
+
this.name = "Storey";
|
|
625
|
+
/**
|
|
626
|
+
* How high the storey's floor is above the building's origin.
|
|
627
|
+
* @default 0
|
|
628
|
+
* @minimum -Infinity
|
|
629
|
+
* @maximum Infinity
|
|
630
|
+
*/
|
|
631
|
+
this.elevation = 0;
|
|
632
|
+
if (model !== undefined) {
|
|
633
|
+
this.model = model;
|
|
634
|
+
}
|
|
635
|
+
if (id !== undefined) {
|
|
636
|
+
this.id = id;
|
|
637
|
+
}
|
|
638
|
+
if (name !== undefined) {
|
|
639
|
+
this.name = name;
|
|
640
|
+
}
|
|
641
|
+
if (elevation !== undefined) {
|
|
642
|
+
this.elevation = elevation;
|
|
643
|
+
}
|
|
644
|
+
}
|
|
645
|
+
}
|
|
646
|
+
IFC.AddStoreyDto = AddStoreyDto;
|
|
647
|
+
/**
|
|
648
|
+
* A material to add for `materials.add`, which layer sets, columns and beams then name.
|
|
649
|
+
*/
|
|
650
|
+
class AddMaterialDto {
|
|
651
|
+
constructor(model, name, category, color, transparency) {
|
|
652
|
+
/**
|
|
653
|
+
* The material's name, unique in the model, by which layer sets and members refer to it.
|
|
654
|
+
* @default Material
|
|
655
|
+
*/
|
|
656
|
+
this.name = "Material";
|
|
657
|
+
/**
|
|
658
|
+
* How see-through the material is shown, from 0 for opaque to 1 for invisible; used with
|
|
659
|
+
* `color`.
|
|
660
|
+
* @default 0
|
|
661
|
+
* @minimum 0
|
|
662
|
+
* @maximum 1
|
|
663
|
+
*/
|
|
664
|
+
this.transparency = 0;
|
|
665
|
+
if (model !== undefined) {
|
|
666
|
+
this.model = model;
|
|
667
|
+
}
|
|
668
|
+
if (name !== undefined) {
|
|
669
|
+
this.name = name;
|
|
670
|
+
}
|
|
671
|
+
if (category !== undefined) {
|
|
672
|
+
this.category = category;
|
|
673
|
+
}
|
|
674
|
+
if (color !== undefined) {
|
|
675
|
+
this.color = color;
|
|
676
|
+
}
|
|
677
|
+
if (transparency !== undefined) {
|
|
678
|
+
this.transparency = transparency;
|
|
679
|
+
}
|
|
680
|
+
}
|
|
681
|
+
}
|
|
682
|
+
IFC.AddMaterialDto = AddMaterialDto;
|
|
683
|
+
/**
|
|
684
|
+
* One layer of a layer set: its material, by name, and its thickness. Used by `materials.addLayerSet`.
|
|
685
|
+
*/
|
|
686
|
+
class MaterialLayerDto {
|
|
687
|
+
constructor(material, thickness, name) {
|
|
688
|
+
if (material !== undefined) {
|
|
689
|
+
this.material = material;
|
|
690
|
+
}
|
|
691
|
+
if (thickness !== undefined) {
|
|
692
|
+
this.thickness = thickness;
|
|
693
|
+
}
|
|
694
|
+
if (name !== undefined) {
|
|
695
|
+
this.name = name;
|
|
696
|
+
}
|
|
697
|
+
}
|
|
698
|
+
}
|
|
699
|
+
IFC.MaterialLayerDto = MaterialLayerDto;
|
|
700
|
+
/**
|
|
701
|
+
* A named stack of material layers for `materials.addLayerSet`, which walls, slabs and roofs are made
|
|
702
|
+
* of; a wall's first layer is on its right face, looking from start to end, a slab's or roof's at its
|
|
703
|
+
* top.
|
|
704
|
+
*/
|
|
705
|
+
class AddLayerSetDto {
|
|
706
|
+
constructor(model, name, layers) {
|
|
707
|
+
/**
|
|
708
|
+
* The layer set's name, unique in the model, by which walls, wall types and slabs refer to it.
|
|
709
|
+
* @default Layers
|
|
710
|
+
*/
|
|
711
|
+
this.name = "Layers";
|
|
712
|
+
if (model !== undefined) {
|
|
713
|
+
this.model = model;
|
|
714
|
+
}
|
|
715
|
+
if (name !== undefined) {
|
|
716
|
+
this.name = name;
|
|
717
|
+
}
|
|
718
|
+
if (layers !== undefined) {
|
|
719
|
+
this.layers = layers;
|
|
720
|
+
}
|
|
721
|
+
}
|
|
722
|
+
}
|
|
723
|
+
IFC.AddLayerSetDto = AddLayerSetDto;
|
|
724
|
+
/**
|
|
725
|
+
* A storey as `spatial.storeys` and `model.summary` list it: its GlobalId, name and elevation.
|
|
726
|
+
*/
|
|
727
|
+
class StoreyInfoDto {
|
|
728
|
+
constructor() {
|
|
729
|
+
/**
|
|
730
|
+
* The GlobalId that identifies the storey.
|
|
731
|
+
* @default ""
|
|
732
|
+
*/
|
|
733
|
+
this.globalId = "";
|
|
734
|
+
/**
|
|
735
|
+
* What the storey is called.
|
|
736
|
+
* @default ""
|
|
737
|
+
*/
|
|
738
|
+
this.name = "";
|
|
739
|
+
/**
|
|
740
|
+
* How high its floor is above the building's origin, in the model's length unit.
|
|
741
|
+
* @default 0
|
|
742
|
+
*/
|
|
743
|
+
this.elevation = 0;
|
|
744
|
+
}
|
|
745
|
+
}
|
|
746
|
+
IFC.StoreyInfoDto = StoreyInfoDto;
|
|
747
|
+
/**
|
|
748
|
+
* A storey and its new elevation for `spatial.setElevation`.
|
|
749
|
+
*/
|
|
750
|
+
class SetStoreyElevationDto {
|
|
751
|
+
constructor(model, storey, elevation) {
|
|
752
|
+
/**
|
|
753
|
+
* How high its floor is now above the building's origin; everything on the storey moves with it.
|
|
754
|
+
* @default 0
|
|
755
|
+
* @minimum -Infinity
|
|
756
|
+
* @maximum Infinity
|
|
757
|
+
*/
|
|
758
|
+
this.elevation = 0;
|
|
759
|
+
if (model !== undefined) {
|
|
760
|
+
this.model = model;
|
|
761
|
+
}
|
|
762
|
+
if (storey !== undefined) {
|
|
763
|
+
this.storey = storey;
|
|
764
|
+
}
|
|
765
|
+
if (elevation !== undefined) {
|
|
766
|
+
this.elevation = elevation;
|
|
767
|
+
}
|
|
768
|
+
}
|
|
769
|
+
}
|
|
770
|
+
IFC.SetStoreyElevationDto = SetStoreyElevationDto;
|
|
771
|
+
/**
|
|
772
|
+
* A space to add for `spaces.add`: a room or an area of a storey, an outline in the storey's plan
|
|
773
|
+
* extruded up to its height.
|
|
774
|
+
*/
|
|
775
|
+
class AddSpaceDto {
|
|
776
|
+
constructor(model, storey, id, name, longName, outline, height, baseOffset, predefinedType) {
|
|
777
|
+
/**
|
|
778
|
+
* How far above the storey's floor the space starts.
|
|
779
|
+
* @default 0
|
|
780
|
+
* @minimum -Infinity
|
|
781
|
+
* @maximum Infinity
|
|
782
|
+
*/
|
|
783
|
+
this.baseOffset = 0;
|
|
784
|
+
/**
|
|
785
|
+
* What kind of space it is.
|
|
786
|
+
* @default space
|
|
787
|
+
*/
|
|
788
|
+
this.predefinedType = spacePredefinedTypeEnum.space;
|
|
789
|
+
if (model !== undefined) {
|
|
790
|
+
this.model = model;
|
|
791
|
+
}
|
|
792
|
+
if (storey !== undefined) {
|
|
793
|
+
this.storey = storey;
|
|
794
|
+
}
|
|
795
|
+
if (id !== undefined) {
|
|
796
|
+
this.id = id;
|
|
797
|
+
}
|
|
798
|
+
if (name !== undefined) {
|
|
799
|
+
this.name = name;
|
|
800
|
+
}
|
|
801
|
+
if (longName !== undefined) {
|
|
802
|
+
this.longName = longName;
|
|
803
|
+
}
|
|
804
|
+
if (outline !== undefined) {
|
|
805
|
+
this.outline = outline;
|
|
806
|
+
}
|
|
807
|
+
if (height !== undefined) {
|
|
808
|
+
this.height = height;
|
|
809
|
+
}
|
|
810
|
+
if (baseOffset !== undefined) {
|
|
811
|
+
this.baseOffset = baseOffset;
|
|
812
|
+
}
|
|
813
|
+
if (predefinedType !== undefined) {
|
|
814
|
+
this.predefinedType = predefinedType;
|
|
815
|
+
}
|
|
816
|
+
}
|
|
817
|
+
}
|
|
818
|
+
IFC.AddSpaceDto = AddSpaceDto;
|
|
819
|
+
/**
|
|
820
|
+
* A model and, optionally, a storey, for `spaces.list`.
|
|
821
|
+
*/
|
|
822
|
+
class SpacesDto {
|
|
823
|
+
constructor(model, storey) {
|
|
824
|
+
if (model !== undefined) {
|
|
825
|
+
this.model = model;
|
|
826
|
+
}
|
|
827
|
+
if (storey !== undefined) {
|
|
828
|
+
this.storey = storey;
|
|
829
|
+
}
|
|
830
|
+
}
|
|
831
|
+
}
|
|
832
|
+
IFC.SpacesDto = SpacesDto;
|
|
833
|
+
/**
|
|
834
|
+
* A space as `spaces.list` describes it: its number and name, its storey, and its area and height.
|
|
835
|
+
*/
|
|
836
|
+
class SpaceInfoDto {
|
|
837
|
+
constructor() {
|
|
838
|
+
/**
|
|
839
|
+
* The GlobalId that identifies the space.
|
|
840
|
+
* @default ""
|
|
841
|
+
*/
|
|
842
|
+
this.globalId = "";
|
|
843
|
+
/**
|
|
844
|
+
* Its short name or number, or an empty text when it has none.
|
|
845
|
+
* @default ""
|
|
846
|
+
*/
|
|
847
|
+
this.name = "";
|
|
848
|
+
/**
|
|
849
|
+
* Its full name, or an empty text when it has none.
|
|
850
|
+
* @default ""
|
|
851
|
+
*/
|
|
852
|
+
this.longName = "";
|
|
853
|
+
/**
|
|
854
|
+
* The GlobalId of the storey it belongs to, or an empty text when it belongs to none.
|
|
855
|
+
* @default ""
|
|
856
|
+
*/
|
|
857
|
+
this.storey = "";
|
|
858
|
+
/**
|
|
859
|
+
* The area of its outline, in the square of the model's length unit, so square millimetres in a
|
|
860
|
+
* millimetre model; 0 when its body is not an outline extruded up.
|
|
861
|
+
* @default 0
|
|
862
|
+
*/
|
|
863
|
+
this.area = 0;
|
|
864
|
+
/**
|
|
865
|
+
* How high it reaches; 0 when its body is not an outline extruded up.
|
|
866
|
+
* @default 0
|
|
867
|
+
*/
|
|
868
|
+
this.height = 0;
|
|
869
|
+
}
|
|
870
|
+
}
|
|
871
|
+
IFC.SpaceInfoDto = SpaceInfoDto;
|
|
872
|
+
/**
|
|
873
|
+
* An element as `model.elements` and `model.element` describe it.
|
|
874
|
+
*/
|
|
875
|
+
class ElementInfoDto {
|
|
876
|
+
constructor() {
|
|
877
|
+
/**
|
|
878
|
+
* The GlobalId that identifies the element.
|
|
879
|
+
* @default ""
|
|
880
|
+
*/
|
|
881
|
+
this.globalId = "";
|
|
882
|
+
/**
|
|
883
|
+
* Its IFC type, such as `IfcWall`.
|
|
884
|
+
* @default ""
|
|
885
|
+
*/
|
|
886
|
+
this.type = "";
|
|
887
|
+
/**
|
|
888
|
+
* Its name, or an empty text when it has none.
|
|
889
|
+
* @default ""
|
|
890
|
+
*/
|
|
891
|
+
this.name = "";
|
|
892
|
+
/**
|
|
893
|
+
* The GlobalId of the spatial element it stands in: its storey, or a space, road, bridge or
|
|
894
|
+
* other facility part; an empty text when none contains it.
|
|
895
|
+
* @default ""
|
|
896
|
+
*/
|
|
897
|
+
this.storey = "";
|
|
898
|
+
}
|
|
899
|
+
}
|
|
900
|
+
IFC.ElementInfoDto = ElementInfoDto;
|
|
901
|
+
/**
|
|
902
|
+
* Where a model sits on the Earth, as `model.georeference` reads it: its map conversion and its
|
|
903
|
+
* site's reference latitude, longitude and elevation.
|
|
904
|
+
*/
|
|
905
|
+
class GeoreferenceDto {
|
|
906
|
+
constructor() {
|
|
907
|
+
/**
|
|
908
|
+
* Whether the model holds a map conversion; when it does not, the map fields keep their defaults.
|
|
909
|
+
* @default false
|
|
910
|
+
*/
|
|
911
|
+
this.mapped = false;
|
|
912
|
+
/**
|
|
913
|
+
* The name of the projected coordinate reference system the map conversion targets, such as
|
|
914
|
+
* `EPSG:3301`.
|
|
915
|
+
* @default ""
|
|
916
|
+
*/
|
|
917
|
+
this.crs = "";
|
|
918
|
+
/**
|
|
919
|
+
* How far east of the map's origin the model's origin lies, in the map's unit.
|
|
920
|
+
* @default 0
|
|
921
|
+
*/
|
|
922
|
+
this.eastings = 0;
|
|
923
|
+
/**
|
|
924
|
+
* How far north of the map's origin the model's origin lies, in the map's unit.
|
|
925
|
+
* @default 0
|
|
926
|
+
*/
|
|
927
|
+
this.northings = 0;
|
|
928
|
+
/**
|
|
929
|
+
* The height of the model's origin above the vertical datum, in the map's unit.
|
|
930
|
+
* @default 0
|
|
931
|
+
*/
|
|
932
|
+
this.orthogonalHeight = 0;
|
|
933
|
+
/**
|
|
934
|
+
* The first map coordinate of the direction the model's X axis points in.
|
|
935
|
+
* @default 1
|
|
936
|
+
*/
|
|
937
|
+
this.xAxisAbscissa = 1;
|
|
938
|
+
/**
|
|
939
|
+
* The second map coordinate of the direction the model's X axis points in.
|
|
940
|
+
* @default 0
|
|
941
|
+
*/
|
|
942
|
+
this.xAxisOrdinate = 0;
|
|
943
|
+
/**
|
|
944
|
+
* The scale from the model's lengths to the map's.
|
|
945
|
+
* @default 1
|
|
946
|
+
*/
|
|
947
|
+
this.scale = 1;
|
|
948
|
+
/**
|
|
949
|
+
* Whether the site records a latitude and a longitude.
|
|
950
|
+
* @default false
|
|
951
|
+
*/
|
|
952
|
+
this.located = false;
|
|
953
|
+
/**
|
|
954
|
+
* The site's reference latitude in decimal degrees, negative to the south.
|
|
955
|
+
* @default 0
|
|
956
|
+
*/
|
|
957
|
+
this.latitude = 0;
|
|
958
|
+
/**
|
|
959
|
+
* The site's reference longitude in decimal degrees, negative to the west.
|
|
960
|
+
* @default 0
|
|
961
|
+
*/
|
|
962
|
+
this.longitude = 0;
|
|
963
|
+
/**
|
|
964
|
+
* The site's reference elevation above sea level, in the model's length unit.
|
|
965
|
+
* @default 0
|
|
966
|
+
*/
|
|
967
|
+
this.elevation = 0;
|
|
968
|
+
}
|
|
969
|
+
}
|
|
970
|
+
IFC.GeoreferenceDto = GeoreferenceDto;
|
|
971
|
+
/**
|
|
972
|
+
* What a model holds, as `model.summary` describes it.
|
|
973
|
+
*/
|
|
974
|
+
class ModelSummaryDto {
|
|
975
|
+
constructor() {
|
|
976
|
+
/**
|
|
977
|
+
* The schema the model's file names, such as `IFC4`.
|
|
978
|
+
* @default ""
|
|
979
|
+
*/
|
|
980
|
+
this.schema = "";
|
|
981
|
+
/**
|
|
982
|
+
* Whether the model can be changed: false for an `IFC2X3` file, which is read through `IFC4`
|
|
983
|
+
* to be shown and queried.
|
|
984
|
+
* @default true
|
|
985
|
+
*/
|
|
986
|
+
this.editable = true;
|
|
987
|
+
/**
|
|
988
|
+
* What the project is called.
|
|
989
|
+
* @default ""
|
|
990
|
+
*/
|
|
991
|
+
this.project = "";
|
|
992
|
+
/**
|
|
993
|
+
* How many millimetres one length unit of the model is.
|
|
994
|
+
* @default 1
|
|
995
|
+
*/
|
|
996
|
+
this.millimetresPerUnit = 1;
|
|
997
|
+
/**
|
|
998
|
+
* How many entities the model holds, geometry and relationships included.
|
|
999
|
+
* @default 0
|
|
1000
|
+
*/
|
|
1001
|
+
this.entities = 0;
|
|
1002
|
+
/**
|
|
1003
|
+
* The storeys, lowest first.
|
|
1004
|
+
* @default []
|
|
1005
|
+
*/
|
|
1006
|
+
this.storeys = [];
|
|
1007
|
+
/**
|
|
1008
|
+
* How many elements of each IFC type the model holds, such as `{ IfcWall: 8 }`.
|
|
1009
|
+
* @default {}
|
|
1010
|
+
*/
|
|
1011
|
+
this.elementCounts = {};
|
|
1012
|
+
}
|
|
1013
|
+
}
|
|
1014
|
+
IFC.ModelSummaryDto = ModelSummaryDto;
|
|
1015
|
+
/**
|
|
1016
|
+
* A straight wall to add for `walls.add`: an axis from `start` to `end` on a storey, a height, and
|
|
1017
|
+
* either a `thickness` or the layer set it is made of.
|
|
1018
|
+
*/
|
|
1019
|
+
class AddWallDto {
|
|
1020
|
+
constructor(model, storey, id, name, start, end, height, thickness, layerSet, alignment, baseOffset, wallType, predefinedType) {
|
|
1021
|
+
/**
|
|
1022
|
+
* Which side of the axis the wall's layers lie on, looking from `start` to `end`. Walls drawn
|
|
1023
|
+
* counterclockwise around a plan with `right` stand outside the outline.
|
|
1024
|
+
* @default center
|
|
1025
|
+
*/
|
|
1026
|
+
this.alignment = wallAlignmentEnum.center;
|
|
1027
|
+
/**
|
|
1028
|
+
* How far above the storey's floor the wall starts.
|
|
1029
|
+
* @default 0
|
|
1030
|
+
* @minimum -Infinity
|
|
1031
|
+
* @maximum Infinity
|
|
1032
|
+
*/
|
|
1033
|
+
this.baseOffset = 0;
|
|
1034
|
+
/**
|
|
1035
|
+
* What kind of wall it is, for a wall without a `wallType`; a wall of a type is the kind its
|
|
1036
|
+
* type says.
|
|
1037
|
+
* @default standard
|
|
1038
|
+
*/
|
|
1039
|
+
this.predefinedType = wallPredefinedTypeEnum.standard;
|
|
1040
|
+
if (model !== undefined) {
|
|
1041
|
+
this.model = model;
|
|
1042
|
+
}
|
|
1043
|
+
if (storey !== undefined) {
|
|
1044
|
+
this.storey = storey;
|
|
1045
|
+
}
|
|
1046
|
+
if (id !== undefined) {
|
|
1047
|
+
this.id = id;
|
|
1048
|
+
}
|
|
1049
|
+
if (name !== undefined) {
|
|
1050
|
+
this.name = name;
|
|
1051
|
+
}
|
|
1052
|
+
if (start !== undefined) {
|
|
1053
|
+
this.start = start;
|
|
1054
|
+
}
|
|
1055
|
+
if (end !== undefined) {
|
|
1056
|
+
this.end = end;
|
|
1057
|
+
}
|
|
1058
|
+
if (height !== undefined) {
|
|
1059
|
+
this.height = height;
|
|
1060
|
+
}
|
|
1061
|
+
if (thickness !== undefined) {
|
|
1062
|
+
this.thickness = thickness;
|
|
1063
|
+
}
|
|
1064
|
+
if (layerSet !== undefined) {
|
|
1065
|
+
this.layerSet = layerSet;
|
|
1066
|
+
}
|
|
1067
|
+
if (alignment !== undefined) {
|
|
1068
|
+
this.alignment = alignment;
|
|
1069
|
+
}
|
|
1070
|
+
if (baseOffset !== undefined) {
|
|
1071
|
+
this.baseOffset = baseOffset;
|
|
1072
|
+
}
|
|
1073
|
+
if (wallType !== undefined) {
|
|
1074
|
+
this.wallType = wallType;
|
|
1075
|
+
}
|
|
1076
|
+
if (predefinedType !== undefined) {
|
|
1077
|
+
this.predefinedType = predefinedType;
|
|
1078
|
+
}
|
|
1079
|
+
}
|
|
1080
|
+
}
|
|
1081
|
+
IFC.AddWallDto = AddWallDto;
|
|
1082
|
+
/**
|
|
1083
|
+
* Two walls for `walls.connect`, which works out where they meet and trims both, or for
|
|
1084
|
+
* `walls.disconnect`, which takes the join away.
|
|
1085
|
+
*/
|
|
1086
|
+
class ConnectWallsDto {
|
|
1087
|
+
constructor(model, wall, other) {
|
|
1088
|
+
if (model !== undefined) {
|
|
1089
|
+
this.model = model;
|
|
1090
|
+
}
|
|
1091
|
+
if (wall !== undefined) {
|
|
1092
|
+
this.wall = wall;
|
|
1093
|
+
}
|
|
1094
|
+
if (other !== undefined) {
|
|
1095
|
+
this.other = other;
|
|
1096
|
+
}
|
|
1097
|
+
}
|
|
1098
|
+
}
|
|
1099
|
+
IFC.ConnectWallsDto = ConnectWallsDto;
|
|
1100
|
+
/**
|
|
1101
|
+
* A wall and a plane to clip it with for `walls.clipByPlane`, which removes the part of the wall on
|
|
1102
|
+
* the side the plane's normal points to.
|
|
1103
|
+
*/
|
|
1104
|
+
class ClipWallDto {
|
|
1105
|
+
constructor(model, wall, origin, normal) {
|
|
1106
|
+
/**
|
|
1107
|
+
* The plane's normal, pointing to the side that is removed; `[0, 0, 1]` cuts the top off level.
|
|
1108
|
+
* @default [0, 0, 1]
|
|
1109
|
+
*/
|
|
1110
|
+
this.normal = [0, 0, 1];
|
|
1111
|
+
if (model !== undefined) {
|
|
1112
|
+
this.model = model;
|
|
1113
|
+
}
|
|
1114
|
+
if (wall !== undefined) {
|
|
1115
|
+
this.wall = wall;
|
|
1116
|
+
}
|
|
1117
|
+
if (origin !== undefined) {
|
|
1118
|
+
this.origin = origin;
|
|
1119
|
+
}
|
|
1120
|
+
if (normal !== undefined) {
|
|
1121
|
+
this.normal = normal;
|
|
1122
|
+
}
|
|
1123
|
+
}
|
|
1124
|
+
}
|
|
1125
|
+
IFC.ClipWallDto = ClipWallDto;
|
|
1126
|
+
/**
|
|
1127
|
+
* A wall and a roof to clip it under, for `walls.clipByRoof`.
|
|
1128
|
+
*/
|
|
1129
|
+
class ClipWallByRoofDto {
|
|
1130
|
+
constructor(model, wall, roof) {
|
|
1131
|
+
if (model !== undefined) {
|
|
1132
|
+
this.model = model;
|
|
1133
|
+
}
|
|
1134
|
+
if (wall !== undefined) {
|
|
1135
|
+
this.wall = wall;
|
|
1136
|
+
}
|
|
1137
|
+
if (roof !== undefined) {
|
|
1138
|
+
this.roof = roof;
|
|
1139
|
+
}
|
|
1140
|
+
}
|
|
1141
|
+
}
|
|
1142
|
+
IFC.ClipWallByRoofDto = ClipWallByRoofDto;
|
|
1143
|
+
/**
|
|
1144
|
+
* A wall type to add for `walls.addType`: a named kind of wall made of a layer set, which walls are
|
|
1145
|
+
* then occurrences of.
|
|
1146
|
+
*/
|
|
1147
|
+
class AddWallTypeDto {
|
|
1148
|
+
constructor(model, id, name, layerSet, predefinedType) {
|
|
1149
|
+
/**
|
|
1150
|
+
* The type's name.
|
|
1151
|
+
* @default Wall type
|
|
1152
|
+
*/
|
|
1153
|
+
this.name = "Wall type";
|
|
1154
|
+
/**
|
|
1155
|
+
* What kind of wall the type is.
|
|
1156
|
+
* @default standard
|
|
1157
|
+
*/
|
|
1158
|
+
this.predefinedType = wallPredefinedTypeEnum.standard;
|
|
1159
|
+
if (model !== undefined) {
|
|
1160
|
+
this.model = model;
|
|
1161
|
+
}
|
|
1162
|
+
if (id !== undefined) {
|
|
1163
|
+
this.id = id;
|
|
1164
|
+
}
|
|
1165
|
+
if (name !== undefined) {
|
|
1166
|
+
this.name = name;
|
|
1167
|
+
}
|
|
1168
|
+
if (layerSet !== undefined) {
|
|
1169
|
+
this.layerSet = layerSet;
|
|
1170
|
+
}
|
|
1171
|
+
if (predefinedType !== undefined) {
|
|
1172
|
+
this.predefinedType = predefinedType;
|
|
1173
|
+
}
|
|
1174
|
+
}
|
|
1175
|
+
}
|
|
1176
|
+
IFC.AddWallTypeDto = AddWallTypeDto;
|
|
1177
|
+
/**
|
|
1178
|
+
* A wall of a model, for `walls.parameters`.
|
|
1179
|
+
*/
|
|
1180
|
+
class WallDto {
|
|
1181
|
+
constructor(model, wall) {
|
|
1182
|
+
if (model !== undefined) {
|
|
1183
|
+
this.model = model;
|
|
1184
|
+
}
|
|
1185
|
+
if (wall !== undefined) {
|
|
1186
|
+
this.wall = wall;
|
|
1187
|
+
}
|
|
1188
|
+
}
|
|
1189
|
+
}
|
|
1190
|
+
IFC.WallDto = WallDto;
|
|
1191
|
+
/**
|
|
1192
|
+
* What to change about a wall for `walls.edit`. Everything left out stays as it is.
|
|
1193
|
+
*/
|
|
1194
|
+
class EditWallDto {
|
|
1195
|
+
constructor(model, wall, start, end, height, baseOffset, thickness, layerSet, alignment) {
|
|
1196
|
+
if (model !== undefined) {
|
|
1197
|
+
this.model = model;
|
|
1198
|
+
}
|
|
1199
|
+
if (wall !== undefined) {
|
|
1200
|
+
this.wall = wall;
|
|
1201
|
+
}
|
|
1202
|
+
if (start !== undefined) {
|
|
1203
|
+
this.start = start;
|
|
1204
|
+
}
|
|
1205
|
+
if (end !== undefined) {
|
|
1206
|
+
this.end = end;
|
|
1207
|
+
}
|
|
1208
|
+
if (height !== undefined) {
|
|
1209
|
+
this.height = height;
|
|
1210
|
+
}
|
|
1211
|
+
if (baseOffset !== undefined) {
|
|
1212
|
+
this.baseOffset = baseOffset;
|
|
1213
|
+
}
|
|
1214
|
+
if (thickness !== undefined) {
|
|
1215
|
+
this.thickness = thickness;
|
|
1216
|
+
}
|
|
1217
|
+
if (layerSet !== undefined) {
|
|
1218
|
+
this.layerSet = layerSet;
|
|
1219
|
+
}
|
|
1220
|
+
if (alignment !== undefined) {
|
|
1221
|
+
this.alignment = alignment;
|
|
1222
|
+
}
|
|
1223
|
+
}
|
|
1224
|
+
}
|
|
1225
|
+
IFC.EditWallDto = EditWallDto;
|
|
1226
|
+
/**
|
|
1227
|
+
* One join of a wall, as `walls.parameters` lists it.
|
|
1228
|
+
*/
|
|
1229
|
+
class WallJoinInfoDto {
|
|
1230
|
+
constructor() {
|
|
1231
|
+
/**
|
|
1232
|
+
* The GlobalId of the wall it is joined to.
|
|
1233
|
+
* @default ""
|
|
1234
|
+
*/
|
|
1235
|
+
this.other = "";
|
|
1236
|
+
/**
|
|
1237
|
+
* Where on this wall the join is.
|
|
1238
|
+
* @default start
|
|
1239
|
+
*/
|
|
1240
|
+
this.at = wallEndEnum.start;
|
|
1241
|
+
/**
|
|
1242
|
+
* Where on the other wall the join is.
|
|
1243
|
+
* @default start
|
|
1244
|
+
*/
|
|
1245
|
+
this.otherAt = wallEndEnum.start;
|
|
1246
|
+
}
|
|
1247
|
+
}
|
|
1248
|
+
IFC.WallJoinInfoDto = WallJoinInfoDto;
|
|
1249
|
+
/**
|
|
1250
|
+
* A wall's parameters as `walls.parameters` reads them back from the model, whichever tool wrote it.
|
|
1251
|
+
* Lengths are in the model's length unit, and points in the plan of the wall's storey.
|
|
1252
|
+
*/
|
|
1253
|
+
class WallParametersDto {
|
|
1254
|
+
constructor() {
|
|
1255
|
+
/**
|
|
1256
|
+
* The GlobalId that identifies the wall.
|
|
1257
|
+
* @default ""
|
|
1258
|
+
*/
|
|
1259
|
+
this.globalId = "";
|
|
1260
|
+
/**
|
|
1261
|
+
* The wall's name, or an empty text when it has none.
|
|
1262
|
+
* @default ""
|
|
1263
|
+
*/
|
|
1264
|
+
this.name = "";
|
|
1265
|
+
/**
|
|
1266
|
+
* The GlobalId of the storey that contains the wall, or an empty text when none does.
|
|
1267
|
+
* @default ""
|
|
1268
|
+
*/
|
|
1269
|
+
this.storey = "";
|
|
1270
|
+
/**
|
|
1271
|
+
* The start of the wall's axis, as `[x, y]`.
|
|
1272
|
+
* @default [0, 0]
|
|
1273
|
+
*/
|
|
1274
|
+
this.start = [0, 0];
|
|
1275
|
+
/**
|
|
1276
|
+
* The end of the wall's axis, as `[x, y]`.
|
|
1277
|
+
* @default [0, 0]
|
|
1278
|
+
*/
|
|
1279
|
+
this.end = [0, 0];
|
|
1280
|
+
/**
|
|
1281
|
+
* The wall's height, up from its base.
|
|
1282
|
+
* @default 0
|
|
1283
|
+
*/
|
|
1284
|
+
this.height = 0;
|
|
1285
|
+
/**
|
|
1286
|
+
* How far above its storey's floor the wall starts.
|
|
1287
|
+
* @default 0
|
|
1288
|
+
*/
|
|
1289
|
+
this.baseOffset = 0;
|
|
1290
|
+
/**
|
|
1291
|
+
* The wall's thickness, all its layers together.
|
|
1292
|
+
* @default 0
|
|
1293
|
+
*/
|
|
1294
|
+
this.thickness = 0;
|
|
1295
|
+
/**
|
|
1296
|
+
* How far the layers' first face lies left of the axis, looking from start to end: 0 aligned left,
|
|
1297
|
+
* minus the thickness aligned right.
|
|
1298
|
+
* @default 0
|
|
1299
|
+
*/
|
|
1300
|
+
this.offset = 0;
|
|
1301
|
+
/**
|
|
1302
|
+
* Which side of the axis the layers lie on, or an empty text when they lie at an offset none of
|
|
1303
|
+
* the alignments describe.
|
|
1304
|
+
* @default ""
|
|
1305
|
+
*/
|
|
1306
|
+
this.alignment = "";
|
|
1307
|
+
/**
|
|
1308
|
+
* The name of the layer set the wall is made of.
|
|
1309
|
+
* @default ""
|
|
1310
|
+
*/
|
|
1311
|
+
this.layerSet = "";
|
|
1312
|
+
/**
|
|
1313
|
+
* The GlobalId of the wall's type, or an empty text when it has none.
|
|
1314
|
+
* @default ""
|
|
1315
|
+
*/
|
|
1316
|
+
this.wallType = "";
|
|
1317
|
+
/**
|
|
1318
|
+
* Each join of the wall: the other wall, and where on each wall the join is.
|
|
1319
|
+
* @default []
|
|
1320
|
+
*/
|
|
1321
|
+
this.joins = [];
|
|
1322
|
+
/**
|
|
1323
|
+
* The GlobalIds of the openings cut through it, filled or not.
|
|
1324
|
+
* @default []
|
|
1325
|
+
*/
|
|
1326
|
+
this.openings = [];
|
|
1327
|
+
/**
|
|
1328
|
+
* How many planes clip the wall.
|
|
1329
|
+
* @default 0
|
|
1330
|
+
*/
|
|
1331
|
+
this.clippings = 0;
|
|
1332
|
+
}
|
|
1333
|
+
}
|
|
1334
|
+
IFC.WallParametersDto = WallParametersDto;
|
|
1335
|
+
/**
|
|
1336
|
+
* A rectangular opening to cut through a wall for `openings.add`, measured along the wall from
|
|
1337
|
+
* its start.
|
|
1338
|
+
*/
|
|
1339
|
+
class AddOpeningDto {
|
|
1340
|
+
constructor(model, wall, id, name, offset, sill, width, height) {
|
|
1341
|
+
/**
|
|
1342
|
+
* How high above the wall's base the opening's bottom is.
|
|
1343
|
+
* @default 0
|
|
1344
|
+
* @minimum -Infinity
|
|
1345
|
+
* @maximum Infinity
|
|
1346
|
+
*/
|
|
1347
|
+
this.sill = 0;
|
|
1348
|
+
if (model !== undefined) {
|
|
1349
|
+
this.model = model;
|
|
1350
|
+
}
|
|
1351
|
+
if (wall !== undefined) {
|
|
1352
|
+
this.wall = wall;
|
|
1353
|
+
}
|
|
1354
|
+
if (id !== undefined) {
|
|
1355
|
+
this.id = id;
|
|
1356
|
+
}
|
|
1357
|
+
if (name !== undefined) {
|
|
1358
|
+
this.name = name;
|
|
1359
|
+
}
|
|
1360
|
+
if (offset !== undefined) {
|
|
1361
|
+
this.offset = offset;
|
|
1362
|
+
}
|
|
1363
|
+
if (sill !== undefined) {
|
|
1364
|
+
this.sill = sill;
|
|
1365
|
+
}
|
|
1366
|
+
if (width !== undefined) {
|
|
1367
|
+
this.width = width;
|
|
1368
|
+
}
|
|
1369
|
+
if (height !== undefined) {
|
|
1370
|
+
this.height = height;
|
|
1371
|
+
}
|
|
1372
|
+
}
|
|
1373
|
+
}
|
|
1374
|
+
IFC.AddOpeningDto = AddOpeningDto;
|
|
1375
|
+
/**
|
|
1376
|
+
* Where to move an opening to, or what size to make it, for `openings.edit`. Everything left out stays
|
|
1377
|
+
* as it is.
|
|
1378
|
+
*/
|
|
1379
|
+
class EditOpeningDto {
|
|
1380
|
+
constructor(model, opening, offset, sill, width, height) {
|
|
1381
|
+
if (model !== undefined) {
|
|
1382
|
+
this.model = model;
|
|
1383
|
+
}
|
|
1384
|
+
if (opening !== undefined) {
|
|
1385
|
+
this.opening = opening;
|
|
1386
|
+
}
|
|
1387
|
+
if (offset !== undefined) {
|
|
1388
|
+
this.offset = offset;
|
|
1389
|
+
}
|
|
1390
|
+
if (sill !== undefined) {
|
|
1391
|
+
this.sill = sill;
|
|
1392
|
+
}
|
|
1393
|
+
if (width !== undefined) {
|
|
1394
|
+
this.width = width;
|
|
1395
|
+
}
|
|
1396
|
+
if (height !== undefined) {
|
|
1397
|
+
this.height = height;
|
|
1398
|
+
}
|
|
1399
|
+
}
|
|
1400
|
+
}
|
|
1401
|
+
IFC.EditOpeningDto = EditOpeningDto;
|
|
1402
|
+
/**
|
|
1403
|
+
* An opening to cut through a slab for `openings.addInSlab`: an outline in the plan of the slab's
|
|
1404
|
+
* storey, cut through the slab's whole thickness.
|
|
1405
|
+
*/
|
|
1406
|
+
class AddSlabOpeningDto {
|
|
1407
|
+
constructor(model, slab, id, name, outline) {
|
|
1408
|
+
if (model !== undefined) {
|
|
1409
|
+
this.model = model;
|
|
1410
|
+
}
|
|
1411
|
+
if (slab !== undefined) {
|
|
1412
|
+
this.slab = slab;
|
|
1413
|
+
}
|
|
1414
|
+
if (id !== undefined) {
|
|
1415
|
+
this.id = id;
|
|
1416
|
+
}
|
|
1417
|
+
if (name !== undefined) {
|
|
1418
|
+
this.name = name;
|
|
1419
|
+
}
|
|
1420
|
+
if (outline !== undefined) {
|
|
1421
|
+
this.outline = outline;
|
|
1422
|
+
}
|
|
1423
|
+
}
|
|
1424
|
+
}
|
|
1425
|
+
IFC.AddSlabOpeningDto = AddSlabOpeningDto;
|
|
1426
|
+
/**
|
|
1427
|
+
* A door type to add for `doors.addType`: a lining around one panel, which every door of the type
|
|
1428
|
+
* shares, so the geometry is written once however many doors there are.
|
|
1429
|
+
*/
|
|
1430
|
+
class AddDoorTypeDto {
|
|
1431
|
+
constructor(model, id, name, width, height, liningThickness, liningDepth, panelThickness, operation, liningMaterial, panelMaterial, handle, handleMaterial) {
|
|
1432
|
+
/**
|
|
1433
|
+
* The type's name.
|
|
1434
|
+
* @default Door
|
|
1435
|
+
*/
|
|
1436
|
+
this.name = "Door";
|
|
1437
|
+
/**
|
|
1438
|
+
* How the door opens, recorded for other tools to draw its swing.
|
|
1439
|
+
* @default singleSwingLeft
|
|
1440
|
+
*/
|
|
1441
|
+
this.operation = doorOperationEnum.singleSwingLeft;
|
|
1442
|
+
/**
|
|
1443
|
+
* The handle on both faces of the panel, near the edge away from the hinges that `operation`
|
|
1444
|
+
* names.
|
|
1445
|
+
* @default none
|
|
1446
|
+
*/
|
|
1447
|
+
this.handle = doorHandleEnum.none;
|
|
1448
|
+
if (model !== undefined) {
|
|
1449
|
+
this.model = model;
|
|
1450
|
+
}
|
|
1451
|
+
if (id !== undefined) {
|
|
1452
|
+
this.id = id;
|
|
1453
|
+
}
|
|
1454
|
+
if (name !== undefined) {
|
|
1455
|
+
this.name = name;
|
|
1456
|
+
}
|
|
1457
|
+
if (width !== undefined) {
|
|
1458
|
+
this.width = width;
|
|
1459
|
+
}
|
|
1460
|
+
if (height !== undefined) {
|
|
1461
|
+
this.height = height;
|
|
1462
|
+
}
|
|
1463
|
+
if (liningThickness !== undefined) {
|
|
1464
|
+
this.liningThickness = liningThickness;
|
|
1465
|
+
}
|
|
1466
|
+
if (liningDepth !== undefined) {
|
|
1467
|
+
this.liningDepth = liningDepth;
|
|
1468
|
+
}
|
|
1469
|
+
if (panelThickness !== undefined) {
|
|
1470
|
+
this.panelThickness = panelThickness;
|
|
1471
|
+
}
|
|
1472
|
+
if (operation !== undefined) {
|
|
1473
|
+
this.operation = operation;
|
|
1474
|
+
}
|
|
1475
|
+
if (liningMaterial !== undefined) {
|
|
1476
|
+
this.liningMaterial = liningMaterial;
|
|
1477
|
+
}
|
|
1478
|
+
if (panelMaterial !== undefined) {
|
|
1479
|
+
this.panelMaterial = panelMaterial;
|
|
1480
|
+
}
|
|
1481
|
+
if (handle !== undefined) {
|
|
1482
|
+
this.handle = handle;
|
|
1483
|
+
}
|
|
1484
|
+
if (handleMaterial !== undefined) {
|
|
1485
|
+
this.handleMaterial = handleMaterial;
|
|
1486
|
+
}
|
|
1487
|
+
}
|
|
1488
|
+
}
|
|
1489
|
+
IFC.AddDoorTypeDto = AddDoorTypeDto;
|
|
1490
|
+
/**
|
|
1491
|
+
* A window type to add for `windows.addType`: a frame around one pane of glass, which every window
|
|
1492
|
+
* of the type shares.
|
|
1493
|
+
*/
|
|
1494
|
+
class AddWindowTypeDto {
|
|
1495
|
+
constructor(model, id, name, width, height, frameThickness, frameDepth, glassThickness, frameMaterial, glassMaterial) {
|
|
1496
|
+
/**
|
|
1497
|
+
* The type's name.
|
|
1498
|
+
* @default Window
|
|
1499
|
+
*/
|
|
1500
|
+
this.name = "Window";
|
|
1501
|
+
if (model !== undefined) {
|
|
1502
|
+
this.model = model;
|
|
1503
|
+
}
|
|
1504
|
+
if (id !== undefined) {
|
|
1505
|
+
this.id = id;
|
|
1506
|
+
}
|
|
1507
|
+
if (name !== undefined) {
|
|
1508
|
+
this.name = name;
|
|
1509
|
+
}
|
|
1510
|
+
if (width !== undefined) {
|
|
1511
|
+
this.width = width;
|
|
1512
|
+
}
|
|
1513
|
+
if (height !== undefined) {
|
|
1514
|
+
this.height = height;
|
|
1515
|
+
}
|
|
1516
|
+
if (frameThickness !== undefined) {
|
|
1517
|
+
this.frameThickness = frameThickness;
|
|
1518
|
+
}
|
|
1519
|
+
if (frameDepth !== undefined) {
|
|
1520
|
+
this.frameDepth = frameDepth;
|
|
1521
|
+
}
|
|
1522
|
+
if (glassThickness !== undefined) {
|
|
1523
|
+
this.glassThickness = glassThickness;
|
|
1524
|
+
}
|
|
1525
|
+
if (frameMaterial !== undefined) {
|
|
1526
|
+
this.frameMaterial = frameMaterial;
|
|
1527
|
+
}
|
|
1528
|
+
if (glassMaterial !== undefined) {
|
|
1529
|
+
this.glassMaterial = glassMaterial;
|
|
1530
|
+
}
|
|
1531
|
+
}
|
|
1532
|
+
}
|
|
1533
|
+
IFC.AddWindowTypeDto = AddWindowTypeDto;
|
|
1534
|
+
/**
|
|
1535
|
+
* A door to place in a wall for `doors.add`: a door type and where along the wall it goes. The door
|
|
1536
|
+
* cuts its own opening, as wide and high as its type.
|
|
1537
|
+
*/
|
|
1538
|
+
class AddDoorDto {
|
|
1539
|
+
constructor(model, wall, doorType, id, name, offset, sill) {
|
|
1540
|
+
/**
|
|
1541
|
+
* How high above the wall's base the door's bottom is.
|
|
1542
|
+
* @default 0
|
|
1543
|
+
* @minimum -Infinity
|
|
1544
|
+
* @maximum Infinity
|
|
1545
|
+
*/
|
|
1546
|
+
this.sill = 0;
|
|
1547
|
+
if (model !== undefined) {
|
|
1548
|
+
this.model = model;
|
|
1549
|
+
}
|
|
1550
|
+
if (wall !== undefined) {
|
|
1551
|
+
this.wall = wall;
|
|
1552
|
+
}
|
|
1553
|
+
if (doorType !== undefined) {
|
|
1554
|
+
this.doorType = doorType;
|
|
1555
|
+
}
|
|
1556
|
+
if (id !== undefined) {
|
|
1557
|
+
this.id = id;
|
|
1558
|
+
}
|
|
1559
|
+
if (name !== undefined) {
|
|
1560
|
+
this.name = name;
|
|
1561
|
+
}
|
|
1562
|
+
if (offset !== undefined) {
|
|
1563
|
+
this.offset = offset;
|
|
1564
|
+
}
|
|
1565
|
+
if (sill !== undefined) {
|
|
1566
|
+
this.sill = sill;
|
|
1567
|
+
}
|
|
1568
|
+
}
|
|
1569
|
+
}
|
|
1570
|
+
IFC.AddDoorDto = AddDoorDto;
|
|
1571
|
+
/**
|
|
1572
|
+
* A window to place in a wall for `windows.add`: a window type and where along the wall it goes.
|
|
1573
|
+
* The window cuts its own opening, as wide and high as its type.
|
|
1574
|
+
*/
|
|
1575
|
+
class AddWindowDto {
|
|
1576
|
+
constructor(model, wall, windowType, id, name, offset, sill) {
|
|
1577
|
+
if (model !== undefined) {
|
|
1578
|
+
this.model = model;
|
|
1579
|
+
}
|
|
1580
|
+
if (wall !== undefined) {
|
|
1581
|
+
this.wall = wall;
|
|
1582
|
+
}
|
|
1583
|
+
if (windowType !== undefined) {
|
|
1584
|
+
this.windowType = windowType;
|
|
1585
|
+
}
|
|
1586
|
+
if (id !== undefined) {
|
|
1587
|
+
this.id = id;
|
|
1588
|
+
}
|
|
1589
|
+
if (name !== undefined) {
|
|
1590
|
+
this.name = name;
|
|
1591
|
+
}
|
|
1592
|
+
if (offset !== undefined) {
|
|
1593
|
+
this.offset = offset;
|
|
1594
|
+
}
|
|
1595
|
+
if (sill !== undefined) {
|
|
1596
|
+
this.sill = sill;
|
|
1597
|
+
}
|
|
1598
|
+
}
|
|
1599
|
+
}
|
|
1600
|
+
IFC.AddWindowDto = AddWindowDto;
|
|
1601
|
+
/**
|
|
1602
|
+
* A slab to add for `slabs.add`: an outline in a storey's plan, with optional holes, extruded down
|
|
1603
|
+
* from its top by its thickness.
|
|
1604
|
+
*/
|
|
1605
|
+
class AddSlabDto {
|
|
1606
|
+
constructor(model, storey, id, name, outline, holes, thickness, layerSet, topOffset, predefinedType) {
|
|
1607
|
+
/**
|
|
1608
|
+
* How high the slab's top is above the storey's floor.
|
|
1609
|
+
* @default 0
|
|
1610
|
+
* @minimum -Infinity
|
|
1611
|
+
* @maximum Infinity
|
|
1612
|
+
*/
|
|
1613
|
+
this.topOffset = 0;
|
|
1614
|
+
/**
|
|
1615
|
+
* What kind of slab it is.
|
|
1616
|
+
* @default floor
|
|
1617
|
+
*/
|
|
1618
|
+
this.predefinedType = slabPredefinedTypeEnum.floor;
|
|
1619
|
+
if (model !== undefined) {
|
|
1620
|
+
this.model = model;
|
|
1621
|
+
}
|
|
1622
|
+
if (storey !== undefined) {
|
|
1623
|
+
this.storey = storey;
|
|
1624
|
+
}
|
|
1625
|
+
if (id !== undefined) {
|
|
1626
|
+
this.id = id;
|
|
1627
|
+
}
|
|
1628
|
+
if (name !== undefined) {
|
|
1629
|
+
this.name = name;
|
|
1630
|
+
}
|
|
1631
|
+
if (outline !== undefined) {
|
|
1632
|
+
this.outline = outline;
|
|
1633
|
+
}
|
|
1634
|
+
if (holes !== undefined) {
|
|
1635
|
+
this.holes = holes;
|
|
1636
|
+
}
|
|
1637
|
+
if (thickness !== undefined) {
|
|
1638
|
+
this.thickness = thickness;
|
|
1639
|
+
}
|
|
1640
|
+
if (layerSet !== undefined) {
|
|
1641
|
+
this.layerSet = layerSet;
|
|
1642
|
+
}
|
|
1643
|
+
if (topOffset !== undefined) {
|
|
1644
|
+
this.topOffset = topOffset;
|
|
1645
|
+
}
|
|
1646
|
+
if (predefinedType !== undefined) {
|
|
1647
|
+
this.predefinedType = predefinedType;
|
|
1648
|
+
}
|
|
1649
|
+
}
|
|
1650
|
+
}
|
|
1651
|
+
IFC.AddSlabDto = AddSlabDto;
|
|
1652
|
+
/**
|
|
1653
|
+
* The section shared by `columns.add`, `beams.add` and `members.add`: its kind and the sizes that kind reads, a
|
|
1654
|
+
* rectangle's `width` and `depth`, a circle's `radius`, or an I section's `width`, `depth`,
|
|
1655
|
+
* `webThickness` and `flangeThickness`.
|
|
1656
|
+
*/
|
|
1657
|
+
class MemberSharedDto {
|
|
1658
|
+
constructor() {
|
|
1659
|
+
/**
|
|
1660
|
+
* The section's shape.
|
|
1661
|
+
* @default rectangle
|
|
1662
|
+
*/
|
|
1663
|
+
this.profile = profileKindEnum.rectangle;
|
|
1664
|
+
/**
|
|
1665
|
+
* How far the section turns about the member's own axis, in degrees.
|
|
1666
|
+
* @default 0
|
|
1667
|
+
* @minimum -Infinity
|
|
1668
|
+
* @maximum Infinity
|
|
1669
|
+
*/
|
|
1670
|
+
this.rotation = 0;
|
|
1671
|
+
}
|
|
1672
|
+
}
|
|
1673
|
+
IFC.MemberSharedDto = MemberSharedDto;
|
|
1674
|
+
/**
|
|
1675
|
+
* A column to add for `columns.add`: a section standing upright on a point of a storey's plan.
|
|
1676
|
+
*/
|
|
1677
|
+
class AddColumnDto extends MemberSharedDto {
|
|
1678
|
+
constructor(model, storey, position, height, baseOffset, id, name, profile, width, depth, radius, webThickness, flangeThickness, rotation, material) {
|
|
1679
|
+
super();
|
|
1680
|
+
/**
|
|
1681
|
+
* Where the column stands, as `[x, y]` in the storey's plan; the section is centred on it.
|
|
1682
|
+
* @default [0, 0]
|
|
1683
|
+
*/
|
|
1684
|
+
this.position = [0, 0];
|
|
1685
|
+
/**
|
|
1686
|
+
* How far above the storey's floor the column starts.
|
|
1687
|
+
* @default 0
|
|
1688
|
+
* @minimum -Infinity
|
|
1689
|
+
* @maximum Infinity
|
|
1690
|
+
*/
|
|
1691
|
+
this.baseOffset = 0;
|
|
1692
|
+
if (position !== undefined) {
|
|
1693
|
+
this.position = position;
|
|
1694
|
+
}
|
|
1695
|
+
if (height !== undefined) {
|
|
1696
|
+
this.height = height;
|
|
1697
|
+
}
|
|
1698
|
+
if (baseOffset !== undefined) {
|
|
1699
|
+
this.baseOffset = baseOffset;
|
|
1700
|
+
}
|
|
1701
|
+
if (model !== undefined) {
|
|
1702
|
+
this.model = model;
|
|
1703
|
+
}
|
|
1704
|
+
if (storey !== undefined) {
|
|
1705
|
+
this.storey = storey;
|
|
1706
|
+
}
|
|
1707
|
+
if (id !== undefined) {
|
|
1708
|
+
this.id = id;
|
|
1709
|
+
}
|
|
1710
|
+
if (name !== undefined) {
|
|
1711
|
+
this.name = name;
|
|
1712
|
+
}
|
|
1713
|
+
if (profile !== undefined) {
|
|
1714
|
+
this.profile = profile;
|
|
1715
|
+
}
|
|
1716
|
+
if (width !== undefined) {
|
|
1717
|
+
this.width = width;
|
|
1718
|
+
}
|
|
1719
|
+
if (depth !== undefined) {
|
|
1720
|
+
this.depth = depth;
|
|
1721
|
+
}
|
|
1722
|
+
if (radius !== undefined) {
|
|
1723
|
+
this.radius = radius;
|
|
1724
|
+
}
|
|
1725
|
+
if (webThickness !== undefined) {
|
|
1726
|
+
this.webThickness = webThickness;
|
|
1727
|
+
}
|
|
1728
|
+
if (flangeThickness !== undefined) {
|
|
1729
|
+
this.flangeThickness = flangeThickness;
|
|
1730
|
+
}
|
|
1731
|
+
if (rotation !== undefined) {
|
|
1732
|
+
this.rotation = rotation;
|
|
1733
|
+
}
|
|
1734
|
+
if (material !== undefined) {
|
|
1735
|
+
this.material = material;
|
|
1736
|
+
}
|
|
1737
|
+
}
|
|
1738
|
+
}
|
|
1739
|
+
IFC.AddColumnDto = AddColumnDto;
|
|
1740
|
+
/**
|
|
1741
|
+
* A beam to add for `beams.add`: a section swept straight from `start` to `end`, centred on that
|
|
1742
|
+
* line, with its Y up when the beam is not vertical.
|
|
1743
|
+
*/
|
|
1744
|
+
class AddBeamDto extends MemberSharedDto {
|
|
1745
|
+
constructor(model, storey, start, end, id, name, profile, width, depth, radius, webThickness, flangeThickness, rotation, material) {
|
|
1746
|
+
super();
|
|
1747
|
+
if (start !== undefined) {
|
|
1748
|
+
this.start = start;
|
|
1749
|
+
}
|
|
1750
|
+
if (end !== undefined) {
|
|
1751
|
+
this.end = end;
|
|
1752
|
+
}
|
|
1753
|
+
if (model !== undefined) {
|
|
1754
|
+
this.model = model;
|
|
1755
|
+
}
|
|
1756
|
+
if (storey !== undefined) {
|
|
1757
|
+
this.storey = storey;
|
|
1758
|
+
}
|
|
1759
|
+
if (id !== undefined) {
|
|
1760
|
+
this.id = id;
|
|
1761
|
+
}
|
|
1762
|
+
if (name !== undefined) {
|
|
1763
|
+
this.name = name;
|
|
1764
|
+
}
|
|
1765
|
+
if (profile !== undefined) {
|
|
1766
|
+
this.profile = profile;
|
|
1767
|
+
}
|
|
1768
|
+
if (width !== undefined) {
|
|
1769
|
+
this.width = width;
|
|
1770
|
+
}
|
|
1771
|
+
if (depth !== undefined) {
|
|
1772
|
+
this.depth = depth;
|
|
1773
|
+
}
|
|
1774
|
+
if (radius !== undefined) {
|
|
1775
|
+
this.radius = radius;
|
|
1776
|
+
}
|
|
1777
|
+
if (webThickness !== undefined) {
|
|
1778
|
+
this.webThickness = webThickness;
|
|
1779
|
+
}
|
|
1780
|
+
if (flangeThickness !== undefined) {
|
|
1781
|
+
this.flangeThickness = flangeThickness;
|
|
1782
|
+
}
|
|
1783
|
+
if (rotation !== undefined) {
|
|
1784
|
+
this.rotation = rotation;
|
|
1785
|
+
}
|
|
1786
|
+
if (material !== undefined) {
|
|
1787
|
+
this.material = material;
|
|
1788
|
+
}
|
|
1789
|
+
}
|
|
1790
|
+
}
|
|
1791
|
+
IFC.AddBeamDto = AddBeamDto;
|
|
1792
|
+
/**
|
|
1793
|
+
* A member to add for `members.add`: a section swept straight from `start` to `end`, such as a brace,
|
|
1794
|
+
* a rafter, a stud or a mullion.
|
|
1795
|
+
*/
|
|
1796
|
+
class AddMemberDto extends MemberSharedDto {
|
|
1797
|
+
constructor(model, storey, start, end, id, name, profile, width, depth, radius, webThickness, flangeThickness, rotation, material, predefinedType) {
|
|
1798
|
+
super();
|
|
1799
|
+
/**
|
|
1800
|
+
* What kind of member it is.
|
|
1801
|
+
* @default member
|
|
1802
|
+
*/
|
|
1803
|
+
this.predefinedType = memberPredefinedTypeEnum.member;
|
|
1804
|
+
if (start !== undefined) {
|
|
1805
|
+
this.start = start;
|
|
1806
|
+
}
|
|
1807
|
+
if (end !== undefined) {
|
|
1808
|
+
this.end = end;
|
|
1809
|
+
}
|
|
1810
|
+
if (model !== undefined) {
|
|
1811
|
+
this.model = model;
|
|
1812
|
+
}
|
|
1813
|
+
if (storey !== undefined) {
|
|
1814
|
+
this.storey = storey;
|
|
1815
|
+
}
|
|
1816
|
+
if (id !== undefined) {
|
|
1817
|
+
this.id = id;
|
|
1818
|
+
}
|
|
1819
|
+
if (name !== undefined) {
|
|
1820
|
+
this.name = name;
|
|
1821
|
+
}
|
|
1822
|
+
if (profile !== undefined) {
|
|
1823
|
+
this.profile = profile;
|
|
1824
|
+
}
|
|
1825
|
+
if (width !== undefined) {
|
|
1826
|
+
this.width = width;
|
|
1827
|
+
}
|
|
1828
|
+
if (depth !== undefined) {
|
|
1829
|
+
this.depth = depth;
|
|
1830
|
+
}
|
|
1831
|
+
if (radius !== undefined) {
|
|
1832
|
+
this.radius = radius;
|
|
1833
|
+
}
|
|
1834
|
+
if (webThickness !== undefined) {
|
|
1835
|
+
this.webThickness = webThickness;
|
|
1836
|
+
}
|
|
1837
|
+
if (flangeThickness !== undefined) {
|
|
1838
|
+
this.flangeThickness = flangeThickness;
|
|
1839
|
+
}
|
|
1840
|
+
if (rotation !== undefined) {
|
|
1841
|
+
this.rotation = rotation;
|
|
1842
|
+
}
|
|
1843
|
+
if (material !== undefined) {
|
|
1844
|
+
this.material = material;
|
|
1845
|
+
}
|
|
1846
|
+
if (predefinedType !== undefined) {
|
|
1847
|
+
this.predefinedType = predefinedType;
|
|
1848
|
+
}
|
|
1849
|
+
}
|
|
1850
|
+
}
|
|
1851
|
+
IFC.AddMemberDto = AddMemberDto;
|
|
1852
|
+
/**
|
|
1853
|
+
* A roof to add for `roofs.add`: a flat, mono-pitch, gable or hip roof over a rectangle in a storey's
|
|
1854
|
+
* plan, written as an `IfcRoof` whose parts are sloping slabs.
|
|
1855
|
+
*/
|
|
1856
|
+
class AddRoofDto {
|
|
1857
|
+
constructor(model, storey, id, name, outline, kind, pitch, thickness, layerSet, overhang, baseOffset) {
|
|
1858
|
+
/**
|
|
1859
|
+
* The roof's shape.
|
|
1860
|
+
* @default gable
|
|
1861
|
+
*/
|
|
1862
|
+
this.kind = roofKindEnum.gable;
|
|
1863
|
+
/**
|
|
1864
|
+
* The slope of a sloping roof, in degrees from level, more than 0 and at most 89.
|
|
1865
|
+
* @default 30
|
|
1866
|
+
* @minimum 0
|
|
1867
|
+
* @maximum 89
|
|
1868
|
+
*/
|
|
1869
|
+
this.pitch = 30;
|
|
1870
|
+
/**
|
|
1871
|
+
* How far the roof reaches past the outline on every side, measured level.
|
|
1872
|
+
* @default 0
|
|
1873
|
+
* @minimum 0
|
|
1874
|
+
* @maximum Infinity
|
|
1875
|
+
*/
|
|
1876
|
+
this.overhang = 0;
|
|
1877
|
+
/**
|
|
1878
|
+
* How high above the storey's floor the roof's underside meets the outline, such as the height of
|
|
1879
|
+
* the walls under it.
|
|
1880
|
+
* @default 0
|
|
1881
|
+
* @minimum -Infinity
|
|
1882
|
+
* @maximum Infinity
|
|
1883
|
+
*/
|
|
1884
|
+
this.baseOffset = 0;
|
|
1885
|
+
if (model !== undefined) {
|
|
1886
|
+
this.model = model;
|
|
1887
|
+
}
|
|
1888
|
+
if (storey !== undefined) {
|
|
1889
|
+
this.storey = storey;
|
|
1890
|
+
}
|
|
1891
|
+
if (id !== undefined) {
|
|
1892
|
+
this.id = id;
|
|
1893
|
+
}
|
|
1894
|
+
if (name !== undefined) {
|
|
1895
|
+
this.name = name;
|
|
1896
|
+
}
|
|
1897
|
+
if (outline !== undefined) {
|
|
1898
|
+
this.outline = outline;
|
|
1899
|
+
}
|
|
1900
|
+
if (kind !== undefined) {
|
|
1901
|
+
this.kind = kind;
|
|
1902
|
+
}
|
|
1903
|
+
if (pitch !== undefined) {
|
|
1904
|
+
this.pitch = pitch;
|
|
1905
|
+
}
|
|
1906
|
+
if (thickness !== undefined) {
|
|
1907
|
+
this.thickness = thickness;
|
|
1908
|
+
}
|
|
1909
|
+
if (layerSet !== undefined) {
|
|
1910
|
+
this.layerSet = layerSet;
|
|
1911
|
+
}
|
|
1912
|
+
if (overhang !== undefined) {
|
|
1913
|
+
this.overhang = overhang;
|
|
1914
|
+
}
|
|
1915
|
+
if (baseOffset !== undefined) {
|
|
1916
|
+
this.baseOffset = baseOffset;
|
|
1917
|
+
}
|
|
1918
|
+
}
|
|
1919
|
+
}
|
|
1920
|
+
IFC.AddRoofDto = AddRoofDto;
|
|
1921
|
+
/**
|
|
1922
|
+
* An assembly to make for `assemblies.add`: an element made of other elements of the model, such as
|
|
1923
|
+
* a facade's cladding boards or a truss's members, which then stand in the model through it.
|
|
1924
|
+
*/
|
|
1925
|
+
class AddAssemblyDto {
|
|
1926
|
+
constructor(model, parts, id, name, predefinedType, objectType) {
|
|
1927
|
+
/**
|
|
1928
|
+
* The kind of assembly, as IFC classifies them; `userDefined` for a kind it does not name, which
|
|
1929
|
+
* `objectType` then says.
|
|
1930
|
+
* @default notDefined
|
|
1931
|
+
*/
|
|
1932
|
+
this.predefinedType = elementAssemblyPredefinedTypeEnum.notDefined;
|
|
1933
|
+
if (model !== undefined) {
|
|
1934
|
+
this.model = model;
|
|
1935
|
+
}
|
|
1936
|
+
if (parts !== undefined) {
|
|
1937
|
+
this.parts = parts;
|
|
1938
|
+
}
|
|
1939
|
+
if (id !== undefined) {
|
|
1940
|
+
this.id = id;
|
|
1941
|
+
}
|
|
1942
|
+
if (name !== undefined) {
|
|
1943
|
+
this.name = name;
|
|
1944
|
+
}
|
|
1945
|
+
if (predefinedType !== undefined) {
|
|
1946
|
+
this.predefinedType = predefinedType;
|
|
1947
|
+
}
|
|
1948
|
+
if (objectType !== undefined) {
|
|
1949
|
+
this.objectType = objectType;
|
|
1950
|
+
}
|
|
1951
|
+
}
|
|
1952
|
+
}
|
|
1953
|
+
IFC.AddAssemblyDto = AddAssemblyDto;
|
|
1954
|
+
/**
|
|
1955
|
+
* Terrain to add for `site.addTerrain`: the ground of the site as an outline in the site's plan, with
|
|
1956
|
+
* holes where a building or paving meets it, its top at `elevation` and reaching `depth` down.
|
|
1957
|
+
*/
|
|
1958
|
+
class AddTerrainDto {
|
|
1959
|
+
constructor(model, id, name, outline, holes, depth, elevation, material) {
|
|
1960
|
+
/**
|
|
1961
|
+
* A name for the terrain, which other tools show.
|
|
1962
|
+
* @default Terrain
|
|
1963
|
+
*/
|
|
1964
|
+
this.name = "Terrain";
|
|
1965
|
+
/**
|
|
1966
|
+
* How high the ground's top is above the site's origin.
|
|
1967
|
+
* @default 0
|
|
1968
|
+
*/
|
|
1969
|
+
this.elevation = 0;
|
|
1970
|
+
if (model !== undefined) {
|
|
1971
|
+
this.model = model;
|
|
1972
|
+
}
|
|
1973
|
+
if (id !== undefined) {
|
|
1974
|
+
this.id = id;
|
|
1975
|
+
}
|
|
1976
|
+
if (name !== undefined) {
|
|
1977
|
+
this.name = name;
|
|
1978
|
+
}
|
|
1979
|
+
if (outline !== undefined) {
|
|
1980
|
+
this.outline = outline;
|
|
1981
|
+
}
|
|
1982
|
+
if (holes !== undefined) {
|
|
1983
|
+
this.holes = holes;
|
|
1984
|
+
}
|
|
1985
|
+
if (depth !== undefined) {
|
|
1986
|
+
this.depth = depth;
|
|
1987
|
+
}
|
|
1988
|
+
if (elevation !== undefined) {
|
|
1989
|
+
this.elevation = elevation;
|
|
1990
|
+
}
|
|
1991
|
+
if (material !== undefined) {
|
|
1992
|
+
this.material = material;
|
|
1993
|
+
}
|
|
1994
|
+
}
|
|
1995
|
+
}
|
|
1996
|
+
IFC.AddTerrainDto = AddTerrainDto;
|
|
1997
|
+
/**
|
|
1998
|
+
* A tree to add for `site.addTree`: a trunk and a rounded crown standing on the site at `position`,
|
|
1999
|
+
* `height` tall overall, written as a geographic element of the site.
|
|
2000
|
+
*/
|
|
2001
|
+
class AddTreeDto {
|
|
2002
|
+
constructor(model, id, name, species, position, elevation, height, crownRadius, trunkRadius, crownMaterial, trunkMaterial) {
|
|
2003
|
+
/**
|
|
2004
|
+
* A name for the tree, which other tools show.
|
|
2005
|
+
* @default Tree
|
|
2006
|
+
*/
|
|
2007
|
+
this.name = "Tree";
|
|
2008
|
+
/**
|
|
2009
|
+
* What kind of tree it is, such as `Silver birch`, written as the element's object type.
|
|
2010
|
+
* @default Tree
|
|
2011
|
+
*/
|
|
2012
|
+
this.species = "Tree";
|
|
2013
|
+
/**
|
|
2014
|
+
* Where the trunk stands, as `[x, y]` in the site's plan.
|
|
2015
|
+
* @default [0, 0]
|
|
2016
|
+
*/
|
|
2017
|
+
this.position = [0, 0];
|
|
2018
|
+
/**
|
|
2019
|
+
* How high above the site's origin the trunk stands.
|
|
2020
|
+
* @default 0
|
|
2021
|
+
*/
|
|
2022
|
+
this.elevation = 0;
|
|
2023
|
+
if (model !== undefined) {
|
|
2024
|
+
this.model = model;
|
|
2025
|
+
}
|
|
2026
|
+
if (id !== undefined) {
|
|
2027
|
+
this.id = id;
|
|
2028
|
+
}
|
|
2029
|
+
if (name !== undefined) {
|
|
2030
|
+
this.name = name;
|
|
2031
|
+
}
|
|
2032
|
+
if (species !== undefined) {
|
|
2033
|
+
this.species = species;
|
|
2034
|
+
}
|
|
2035
|
+
if (position !== undefined) {
|
|
2036
|
+
this.position = position;
|
|
2037
|
+
}
|
|
2038
|
+
if (elevation !== undefined) {
|
|
2039
|
+
this.elevation = elevation;
|
|
2040
|
+
}
|
|
2041
|
+
if (height !== undefined) {
|
|
2042
|
+
this.height = height;
|
|
2043
|
+
}
|
|
2044
|
+
if (crownRadius !== undefined) {
|
|
2045
|
+
this.crownRadius = crownRadius;
|
|
2046
|
+
}
|
|
2047
|
+
if (trunkRadius !== undefined) {
|
|
2048
|
+
this.trunkRadius = trunkRadius;
|
|
2049
|
+
}
|
|
2050
|
+
if (crownMaterial !== undefined) {
|
|
2051
|
+
this.crownMaterial = crownMaterial;
|
|
2052
|
+
}
|
|
2053
|
+
if (trunkMaterial !== undefined) {
|
|
2054
|
+
this.trunkMaterial = trunkMaterial;
|
|
2055
|
+
}
|
|
2056
|
+
}
|
|
2057
|
+
}
|
|
2058
|
+
IFC.AddTreeDto = AddTreeDto;
|
|
2059
|
+
/**
|
|
2060
|
+
* One property of a property set: its name, its value and, when the value needs one, its IFC type.
|
|
2061
|
+
* Used by `properties.addSet` and `properties.setValues`. A type outside `IfcValue`, or a value it
|
|
2062
|
+
* cannot hold, is refused.
|
|
2063
|
+
*/
|
|
2064
|
+
class PropertyDto {
|
|
2065
|
+
constructor(name, value, type) {
|
|
2066
|
+
/**
|
|
2067
|
+
* The property's name, such as `IsExternal` or `FireRating`.
|
|
2068
|
+
* @default Property
|
|
2069
|
+
*/
|
|
2070
|
+
this.name = "Property";
|
|
2071
|
+
if (name !== undefined) {
|
|
2072
|
+
this.name = name;
|
|
2073
|
+
}
|
|
2074
|
+
if (value !== undefined) {
|
|
2075
|
+
this.value = value;
|
|
2076
|
+
}
|
|
2077
|
+
if (type !== undefined) {
|
|
2078
|
+
this.type = type;
|
|
2079
|
+
}
|
|
2080
|
+
}
|
|
2081
|
+
}
|
|
2082
|
+
IFC.PropertyDto = PropertyDto;
|
|
2083
|
+
/**
|
|
2084
|
+
* A property set to attach to elements for `properties.addSet`, such as `Pset_WallCommon` with its
|
|
2085
|
+
* `IsExternal` and `LoadBearing`.
|
|
2086
|
+
*/
|
|
2087
|
+
class AddPropertySetDto {
|
|
2088
|
+
constructor(model, elements, name, properties) {
|
|
2089
|
+
/**
|
|
2090
|
+
* The set's name. Names starting with `Pset_` are reserved for the sets the IFC standard defines.
|
|
2091
|
+
* @default Properties
|
|
2092
|
+
*/
|
|
2093
|
+
this.name = "Properties";
|
|
2094
|
+
if (model !== undefined) {
|
|
2095
|
+
this.model = model;
|
|
2096
|
+
}
|
|
2097
|
+
if (elements !== undefined) {
|
|
2098
|
+
this.elements = elements;
|
|
2099
|
+
}
|
|
2100
|
+
if (name !== undefined) {
|
|
2101
|
+
this.name = name;
|
|
2102
|
+
}
|
|
2103
|
+
if (properties !== undefined) {
|
|
2104
|
+
this.properties = properties;
|
|
2105
|
+
}
|
|
2106
|
+
}
|
|
2107
|
+
}
|
|
2108
|
+
IFC.AddPropertySetDto = AddPropertySetDto;
|
|
2109
|
+
/**
|
|
2110
|
+
* Values to set in one property set of one object for `properties.setValues`; the set is made when
|
|
2111
|
+
* the object has none of that name.
|
|
2112
|
+
*/
|
|
2113
|
+
class SetPropertyValuesDto {
|
|
2114
|
+
constructor(model, element, name, properties) {
|
|
2115
|
+
/**
|
|
2116
|
+
* The name of the property set, such as `Pset_WallCommon`.
|
|
2117
|
+
* @default Properties
|
|
2118
|
+
*/
|
|
2119
|
+
this.name = "Properties";
|
|
2120
|
+
if (model !== undefined) {
|
|
2121
|
+
this.model = model;
|
|
2122
|
+
}
|
|
2123
|
+
if (element !== undefined) {
|
|
2124
|
+
this.element = element;
|
|
2125
|
+
}
|
|
2126
|
+
if (name !== undefined) {
|
|
2127
|
+
this.name = name;
|
|
2128
|
+
}
|
|
2129
|
+
if (properties !== undefined) {
|
|
2130
|
+
this.properties = properties;
|
|
2131
|
+
}
|
|
2132
|
+
}
|
|
2133
|
+
}
|
|
2134
|
+
IFC.SetPropertyValuesDto = SetPropertyValuesDto;
|
|
2135
|
+
/**
|
|
2136
|
+
* Properties to take out of one property set of one object for `properties.removeValues`.
|
|
2137
|
+
*/
|
|
2138
|
+
class RemovePropertyValuesDto {
|
|
2139
|
+
constructor(model, element, name, names) {
|
|
2140
|
+
/**
|
|
2141
|
+
* The name of the property set, such as `Pset_WallCommon`.
|
|
2142
|
+
* @default Properties
|
|
2143
|
+
*/
|
|
2144
|
+
this.name = "Properties";
|
|
2145
|
+
if (model !== undefined) {
|
|
2146
|
+
this.model = model;
|
|
2147
|
+
}
|
|
2148
|
+
if (element !== undefined) {
|
|
2149
|
+
this.element = element;
|
|
2150
|
+
}
|
|
2151
|
+
if (name !== undefined) {
|
|
2152
|
+
this.name = name;
|
|
2153
|
+
}
|
|
2154
|
+
if (names !== undefined) {
|
|
2155
|
+
this.names = names;
|
|
2156
|
+
}
|
|
2157
|
+
}
|
|
2158
|
+
}
|
|
2159
|
+
IFC.RemovePropertyValuesDto = RemovePropertyValuesDto;
|
|
2160
|
+
/**
|
|
2161
|
+
* One property set of one object to take away, for `properties.removeSet`.
|
|
2162
|
+
*/
|
|
2163
|
+
class RemovePropertySetDto {
|
|
2164
|
+
constructor(model, element, name) {
|
|
2165
|
+
/**
|
|
2166
|
+
* The name of the property set, such as `Pset_WallCommon`.
|
|
2167
|
+
* @default Properties
|
|
2168
|
+
*/
|
|
2169
|
+
this.name = "Properties";
|
|
2170
|
+
if (model !== undefined) {
|
|
2171
|
+
this.model = model;
|
|
2172
|
+
}
|
|
2173
|
+
if (element !== undefined) {
|
|
2174
|
+
this.element = element;
|
|
2175
|
+
}
|
|
2176
|
+
if (name !== undefined) {
|
|
2177
|
+
this.name = name;
|
|
2178
|
+
}
|
|
2179
|
+
}
|
|
2180
|
+
}
|
|
2181
|
+
IFC.RemovePropertySetDto = RemovePropertySetDto;
|
|
2182
|
+
/**
|
|
2183
|
+
* A property set as `properties.getSets` reads it back.
|
|
2184
|
+
*/
|
|
2185
|
+
class PropertySetInfoDto {
|
|
2186
|
+
constructor() {
|
|
2187
|
+
/**
|
|
2188
|
+
* What the set is called, such as `Pset_WallCommon`.
|
|
2189
|
+
* @default ""
|
|
2190
|
+
*/
|
|
2191
|
+
this.name = "";
|
|
2192
|
+
/**
|
|
2193
|
+
* Its single values by property name, such as `{ IsExternal: true }`.
|
|
2194
|
+
* @default {}
|
|
2195
|
+
*/
|
|
2196
|
+
this.properties = {};
|
|
2197
|
+
}
|
|
2198
|
+
}
|
|
2199
|
+
IFC.PropertySetInfoDto = PropertySetInfoDto;
|
|
2200
|
+
/**
|
|
2201
|
+
* The model and the elements to measure for `quantities.compute`, every one it can when left out.
|
|
2202
|
+
*/
|
|
2203
|
+
class ComputeQuantitiesDto {
|
|
2204
|
+
constructor(model, elements) {
|
|
2205
|
+
if (model !== undefined) {
|
|
2206
|
+
this.model = model;
|
|
2207
|
+
}
|
|
2208
|
+
if (elements !== undefined) {
|
|
2209
|
+
this.elements = elements;
|
|
2210
|
+
}
|
|
2211
|
+
}
|
|
2212
|
+
}
|
|
2213
|
+
IFC.ComputeQuantitiesDto = ComputeQuantitiesDto;
|
|
2214
|
+
/**
|
|
2215
|
+
* A quantity set as `quantities.get` reads it back: its name and each quantity's value by name.
|
|
2216
|
+
* Areas and volumes are in the model's area and volume units, square and cubic metres in a model
|
|
2217
|
+
* `model.create` made.
|
|
2218
|
+
*/
|
|
2219
|
+
class QuantitySetInfoDto {
|
|
2220
|
+
constructor() {
|
|
2221
|
+
/**
|
|
2222
|
+
* What the set is called, such as `Qto_WallBaseQuantities`.
|
|
2223
|
+
* @default ""
|
|
2224
|
+
*/
|
|
2225
|
+
this.name = "";
|
|
2226
|
+
/**
|
|
2227
|
+
* Each quantity's value by its name, such as `{ NetVolume: 5.2 }`: lengths in the model's length
|
|
2228
|
+
* unit, areas and volumes in its area and volume units.
|
|
2229
|
+
* @default {}
|
|
2230
|
+
*/
|
|
2231
|
+
this.quantities = {};
|
|
2232
|
+
}
|
|
2233
|
+
}
|
|
2234
|
+
IFC.QuantitySetInfoDto = QuantitySetInfoDto;
|
|
2235
|
+
/**
|
|
2236
|
+
* A model, the elements to describe and how to group them for `geometry.recipe`.
|
|
2237
|
+
*/
|
|
2238
|
+
class GeometryDto {
|
|
2239
|
+
constructor(model, elements, groupByClass) {
|
|
2240
|
+
/**
|
|
2241
|
+
* When true, the elements of each storey, or other part of the structure, are grouped by IFC
|
|
2242
|
+
* class, such as `Walls`; when false they lie in the structure's group.
|
|
2243
|
+
* @default true
|
|
2244
|
+
*/
|
|
2245
|
+
this.groupByClass = true;
|
|
2246
|
+
if (model !== undefined) {
|
|
2247
|
+
this.model = model;
|
|
2248
|
+
}
|
|
2249
|
+
if (elements !== undefined) {
|
|
2250
|
+
this.elements = elements;
|
|
2251
|
+
}
|
|
2252
|
+
if (groupByClass !== undefined) {
|
|
2253
|
+
this.groupByClass = groupByClass;
|
|
2254
|
+
}
|
|
2255
|
+
}
|
|
2256
|
+
}
|
|
2257
|
+
IFC.GeometryDto = GeometryDto;
|
|
2258
|
+
/**
|
|
2259
|
+
* A model and the elements to check for `geometry.unsupported`.
|
|
2260
|
+
*/
|
|
2261
|
+
class GeometryElementsDto {
|
|
2262
|
+
constructor(model, elements) {
|
|
2263
|
+
if (model !== undefined) {
|
|
2264
|
+
this.model = model;
|
|
2265
|
+
}
|
|
2266
|
+
if (elements !== undefined) {
|
|
2267
|
+
this.elements = elements;
|
|
2268
|
+
}
|
|
2269
|
+
}
|
|
2270
|
+
}
|
|
2271
|
+
IFC.GeometryElementsDto = GeometryElementsDto;
|
|
2272
|
+
/**
|
|
2273
|
+
* A model, the elements to build, and how to build them for `geometry.toShapes`, which builds the
|
|
2274
|
+
* model's recipe as OpenCascade shapes.
|
|
2275
|
+
*/
|
|
2276
|
+
class GeometryToShapesDto {
|
|
2277
|
+
constructor(model, elements, adjustZtoY, emptyWhenFailed, facetedMeshes, maxTriangles) {
|
|
2278
|
+
/**
|
|
2279
|
+
* When true, the shapes turn a quarter turn about X so the model's Z points along Y, which is up
|
|
2280
|
+
* when drawn: `(x, y, z)` becomes `(x, z, -y)`.
|
|
2281
|
+
* @default true
|
|
2282
|
+
*/
|
|
2283
|
+
this.adjustZtoY = true;
|
|
2284
|
+
/**
|
|
2285
|
+
* When true, an element that cannot be built comes back as an empty compound and the others are
|
|
2286
|
+
* built; when false, it stops the build.
|
|
2287
|
+
* @default true
|
|
2288
|
+
*/
|
|
2289
|
+
this.emptyWhenFailed = true;
|
|
2290
|
+
/**
|
|
2291
|
+
* When true, elements stored as triangle meshes become faceted solids that cut and fillet like
|
|
2292
|
+
* any shape; when false they keep their triangles, which draw and export faster.
|
|
2293
|
+
* @default false
|
|
2294
|
+
*/
|
|
2295
|
+
this.facetedMeshes = false;
|
|
2296
|
+
/**
|
|
2297
|
+
* The most triangles a mesh built as a faceted solid may hold; a larger one is not built and
|
|
2298
|
+
* counts as an element that failed.
|
|
2299
|
+
* @default 100000
|
|
2300
|
+
* @minimum 0
|
|
2301
|
+
* @maximum Infinity
|
|
2302
|
+
* @step 10000
|
|
2303
|
+
*/
|
|
2304
|
+
this.maxTriangles = 100000;
|
|
2305
|
+
if (model !== undefined) {
|
|
2306
|
+
this.model = model;
|
|
2307
|
+
}
|
|
2308
|
+
if (elements !== undefined) {
|
|
2309
|
+
this.elements = elements;
|
|
2310
|
+
}
|
|
2311
|
+
if (adjustZtoY !== undefined) {
|
|
2312
|
+
this.adjustZtoY = adjustZtoY;
|
|
2313
|
+
}
|
|
2314
|
+
if (emptyWhenFailed !== undefined) {
|
|
2315
|
+
this.emptyWhenFailed = emptyWhenFailed;
|
|
2316
|
+
}
|
|
2317
|
+
if (facetedMeshes !== undefined) {
|
|
2318
|
+
this.facetedMeshes = facetedMeshes;
|
|
2319
|
+
}
|
|
2320
|
+
if (maxTriangles !== undefined) {
|
|
2321
|
+
this.maxTriangles = maxTriangles;
|
|
2322
|
+
}
|
|
2323
|
+
}
|
|
2324
|
+
}
|
|
2325
|
+
IFC.GeometryToShapesDto = GeometryToShapesDto;
|
|
2326
|
+
/**
|
|
2327
|
+
* A model, the elements to build, and how to build them for `geometry.toDocument`, which builds the
|
|
2328
|
+
* model's recipe into an OpenCascade assembly document.
|
|
2329
|
+
*/
|
|
2330
|
+
class GeometryToDocumentDto {
|
|
2331
|
+
constructor(model, elements, name, emptyWhenFailed, facetedMeshes, maxTriangles, groupByClass) {
|
|
2332
|
+
/**
|
|
2333
|
+
* The name of the assembly at the top of the document, which holds every element.
|
|
2334
|
+
* @default Model
|
|
2335
|
+
*/
|
|
2336
|
+
this.name = "Model";
|
|
2337
|
+
/**
|
|
2338
|
+
* When true, an element that cannot be built is left out of the document and the others are
|
|
2339
|
+
* built; when false, it stops the build.
|
|
2340
|
+
* @default true
|
|
2341
|
+
*/
|
|
2342
|
+
this.emptyWhenFailed = true;
|
|
2343
|
+
/**
|
|
2344
|
+
* When true, elements stored as triangle meshes become faceted solids that cut and fillet like
|
|
2345
|
+
* any shape; when false STEP carries their triangles as tessellated geometry, smaller and faster.
|
|
2346
|
+
* @default false
|
|
2347
|
+
*/
|
|
2348
|
+
this.facetedMeshes = false;
|
|
2349
|
+
/**
|
|
2350
|
+
* The most triangles a mesh built as a faceted solid may hold; a larger one is not built and
|
|
2351
|
+
* counts as an element that failed.
|
|
2352
|
+
* @default 100000
|
|
2353
|
+
* @minimum 0
|
|
2354
|
+
* @maximum Infinity
|
|
2355
|
+
* @step 10000
|
|
2356
|
+
*/
|
|
2357
|
+
this.maxTriangles = 100000;
|
|
2358
|
+
/**
|
|
2359
|
+
* When true, each storey's elements are gathered in assemblies by IFC class, such as `Walls`
|
|
2360
|
+
* and `Slabs`; when false they lie in the storey's assembly directly.
|
|
2361
|
+
* @default true
|
|
2362
|
+
*/
|
|
2363
|
+
this.groupByClass = true;
|
|
2364
|
+
if (model !== undefined) {
|
|
2365
|
+
this.model = model;
|
|
2366
|
+
}
|
|
2367
|
+
if (elements !== undefined) {
|
|
2368
|
+
this.elements = elements;
|
|
2369
|
+
}
|
|
2370
|
+
if (name !== undefined) {
|
|
2371
|
+
this.name = name;
|
|
2372
|
+
}
|
|
2373
|
+
if (emptyWhenFailed !== undefined) {
|
|
2374
|
+
this.emptyWhenFailed = emptyWhenFailed;
|
|
2375
|
+
}
|
|
2376
|
+
if (facetedMeshes !== undefined) {
|
|
2377
|
+
this.facetedMeshes = facetedMeshes;
|
|
2378
|
+
}
|
|
2379
|
+
if (maxTriangles !== undefined) {
|
|
2380
|
+
this.maxTriangles = maxTriangles;
|
|
2381
|
+
}
|
|
2382
|
+
if (groupByClass !== undefined) {
|
|
2383
|
+
this.groupByClass = groupByClass;
|
|
2384
|
+
}
|
|
2385
|
+
}
|
|
2386
|
+
}
|
|
2387
|
+
IFC.GeometryToDocumentDto = GeometryToDocumentDto;
|
|
2388
|
+
/**
|
|
2389
|
+
* A model, the elements to write, and the file options for `geometry.toStep`, which writes the
|
|
2390
|
+
* model's elements as a STEP file of OpenCascade shapes.
|
|
2391
|
+
*/
|
|
2392
|
+
class GeometryToStepDto {
|
|
2393
|
+
constructor(model, elements, name, fileName, emptyWhenFailed, facetedMeshes, maxTriangles, compress, tryDownload, groupByClass) {
|
|
2394
|
+
/**
|
|
2395
|
+
* The name of the assembly at the top of the file, which holds every element.
|
|
2396
|
+
* @default Model
|
|
2397
|
+
*/
|
|
2398
|
+
this.name = "Model";
|
|
2399
|
+
/**
|
|
2400
|
+
* The file name, used for the download and written into the file's header.
|
|
2401
|
+
* @default model.step
|
|
2402
|
+
*/
|
|
2403
|
+
this.fileName = "model.step";
|
|
2404
|
+
/**
|
|
2405
|
+
* When true, an element that cannot be built is left out of the file and the others are
|
|
2406
|
+
* written; when false, it stops the export.
|
|
2407
|
+
* @default true
|
|
2408
|
+
*/
|
|
2409
|
+
this.emptyWhenFailed = true;
|
|
2410
|
+
/**
|
|
2411
|
+
* When true, elements stored as triangle meshes are written as faceted solids; when false they
|
|
2412
|
+
* are written as tessellated geometry, which is faster and smaller.
|
|
2413
|
+
* @default false
|
|
2414
|
+
*/
|
|
2415
|
+
this.facetedMeshes = false;
|
|
2416
|
+
/**
|
|
2417
|
+
* The most triangles a mesh built as a faceted solid may hold; a larger one is not built and
|
|
2418
|
+
* counts as an element that failed.
|
|
2419
|
+
* @default 100000
|
|
2420
|
+
* @minimum 0
|
|
2421
|
+
* @maximum Infinity
|
|
2422
|
+
* @step 10000
|
|
2423
|
+
*/
|
|
2424
|
+
this.maxTriangles = 100000;
|
|
2425
|
+
/**
|
|
2426
|
+
* When true, the file is written as gzip-compressed STEP-Z.
|
|
2427
|
+
* @default false
|
|
2428
|
+
*/
|
|
2429
|
+
this.compress = false;
|
|
2430
|
+
/**
|
|
2431
|
+
* When true, a browser download of the file is started where that is possible; the bytes are
|
|
2432
|
+
* returned either way.
|
|
2433
|
+
* @default false
|
|
2434
|
+
*/
|
|
2435
|
+
this.tryDownload = false;
|
|
2436
|
+
/**
|
|
2437
|
+
* When true, each storey's elements are gathered in assemblies by IFC class, such as `Walls`
|
|
2438
|
+
* and `Slabs`; when false they lie in the storey's assembly directly.
|
|
2439
|
+
* @default true
|
|
2440
|
+
*/
|
|
2441
|
+
this.groupByClass = true;
|
|
2442
|
+
if (model !== undefined) {
|
|
2443
|
+
this.model = model;
|
|
2444
|
+
}
|
|
2445
|
+
if (elements !== undefined) {
|
|
2446
|
+
this.elements = elements;
|
|
2447
|
+
}
|
|
2448
|
+
if (name !== undefined) {
|
|
2449
|
+
this.name = name;
|
|
2450
|
+
}
|
|
2451
|
+
if (fileName !== undefined) {
|
|
2452
|
+
this.fileName = fileName;
|
|
2453
|
+
}
|
|
2454
|
+
if (emptyWhenFailed !== undefined) {
|
|
2455
|
+
this.emptyWhenFailed = emptyWhenFailed;
|
|
2456
|
+
}
|
|
2457
|
+
if (facetedMeshes !== undefined) {
|
|
2458
|
+
this.facetedMeshes = facetedMeshes;
|
|
2459
|
+
}
|
|
2460
|
+
if (maxTriangles !== undefined) {
|
|
2461
|
+
this.maxTriangles = maxTriangles;
|
|
2462
|
+
}
|
|
2463
|
+
if (compress !== undefined) {
|
|
2464
|
+
this.compress = compress;
|
|
2465
|
+
}
|
|
2466
|
+
if (tryDownload !== undefined) {
|
|
2467
|
+
this.tryDownload = tryDownload;
|
|
2468
|
+
}
|
|
2469
|
+
if (groupByClass !== undefined) {
|
|
2470
|
+
this.groupByClass = groupByClass;
|
|
2471
|
+
}
|
|
2472
|
+
}
|
|
2473
|
+
}
|
|
2474
|
+
IFC.GeometryToStepDto = GeometryToStepDto;
|
|
2475
|
+
/**
|
|
2476
|
+
* An element `geometry.recipe` had to leave out, as `geometry.unsupported` lists it.
|
|
2477
|
+
*/
|
|
2478
|
+
class GeometryProblemDto {
|
|
2479
|
+
constructor() {
|
|
2480
|
+
/**
|
|
2481
|
+
* The GlobalId of the element left out.
|
|
2482
|
+
* @default ""
|
|
2483
|
+
*/
|
|
2484
|
+
this.globalId = "";
|
|
2485
|
+
/**
|
|
2486
|
+
* Its IFC type, such as `IfcWall`.
|
|
2487
|
+
* @default ""
|
|
2488
|
+
*/
|
|
2489
|
+
this.type = "";
|
|
2490
|
+
/**
|
|
2491
|
+
* What could not be described, in a sentence.
|
|
2492
|
+
* @default ""
|
|
2493
|
+
*/
|
|
2494
|
+
this.message = "";
|
|
2495
|
+
}
|
|
2496
|
+
}
|
|
2497
|
+
IFC.GeometryProblemDto = GeometryProblemDto;
|
|
2498
|
+
})(IFC || (IFC = {}));
|