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