@snaptrude/plugin-core 0.2.3 → 0.2.4

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 (57) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/index.cjs +1 -0
  3. package/dist/index.cjs.map +1 -1
  4. package/dist/index.js +1 -0
  5. package/dist/index.js.map +1 -1
  6. package/package.json +1 -1
  7. package/src/api/entity/space.ts +28 -14
  8. package/dist/api/core/geom/arc.d.ts +0 -81
  9. package/dist/api/core/geom/arc.d.ts.map +0 -1
  10. package/dist/api/core/geom/curve.d.ts +0 -70
  11. package/dist/api/core/geom/curve.d.ts.map +0 -1
  12. package/dist/api/core/geom/index.d.ts +0 -32
  13. package/dist/api/core/geom/index.d.ts.map +0 -1
  14. package/dist/api/core/geom/line.d.ts +0 -56
  15. package/dist/api/core/geom/line.d.ts.map +0 -1
  16. package/dist/api/core/geom/profile.d.ts +0 -121
  17. package/dist/api/core/geom/profile.d.ts.map +0 -1
  18. package/dist/api/core/index.d.ts +0 -18
  19. package/dist/api/core/index.d.ts.map +0 -1
  20. package/dist/api/core/math/index.d.ts +0 -18
  21. package/dist/api/core/math/index.d.ts.map +0 -1
  22. package/dist/api/core/math/quat.d.ts +0 -187
  23. package/dist/api/core/math/quat.d.ts.map +0 -1
  24. package/dist/api/core/math/vec3.d.ts +0 -156
  25. package/dist/api/core/math/vec3.d.ts.map +0 -1
  26. package/dist/api/entity/buildableEnvelope.d.ts +0 -233
  27. package/dist/api/entity/buildableEnvelope.d.ts.map +0 -1
  28. package/dist/api/entity/department.d.ts +0 -99
  29. package/dist/api/entity/department.d.ts.map +0 -1
  30. package/dist/api/entity/index.d.ts +0 -33
  31. package/dist/api/entity/index.d.ts.map +0 -1
  32. package/dist/api/entity/referenceLine.d.ts +0 -259
  33. package/dist/api/entity/referenceLine.d.ts.map +0 -1
  34. package/dist/api/entity/space.d.ts +0 -765
  35. package/dist/api/entity/space.d.ts.map +0 -1
  36. package/dist/api/entity/story.d.ts +0 -239
  37. package/dist/api/entity/story.d.ts.map +0 -1
  38. package/dist/api/index.d.ts +0 -30
  39. package/dist/api/index.d.ts.map +0 -1
  40. package/dist/api/tools/copy.d.ts +0 -59
  41. package/dist/api/tools/copy.d.ts.map +0 -1
  42. package/dist/api/tools/index.d.ts +0 -29
  43. package/dist/api/tools/index.d.ts.map +0 -1
  44. package/dist/api/tools/offset.d.ts +0 -43
  45. package/dist/api/tools/offset.d.ts.map +0 -1
  46. package/dist/api/tools/selection.d.ts +0 -48
  47. package/dist/api/tools/selection.d.ts.map +0 -1
  48. package/dist/api/tools/transform.d.ts +0 -114
  49. package/dist/api/tools/transform.d.ts.map +0 -1
  50. package/dist/api/units/index.d.ts +0 -163
  51. package/dist/api/units/index.d.ts.map +0 -1
  52. package/dist/host-utils.d.ts +0 -41
  53. package/dist/host-utils.d.ts.map +0 -1
  54. package/dist/index.d.ts +0 -4
  55. package/dist/index.d.ts.map +0 -1
  56. package/dist/types.d.ts +0 -16
  57. package/dist/types.d.ts.map +0 -1
@@ -1,765 +0,0 @@
1
- import * as z from "zod";
2
- import { PluginApiReturn } from "../../types";
3
- /**
4
- * Space (room/mass) management — create, query, update, and delete spaces.
5
- *
6
- * A **space** is a 3D volume representing a room or mass in the
7
- * Snaptrude scene. Spaces live on a particular story and carry
8
- * properties such as name, area, department, and room type.
9
- *
10
- * All methods are **host API calls** that return Promises and support
11
- * undo/redo via Snaptrude's command system.
12
- *
13
- * Accessed via `snaptrude.entity.space`.
14
- */
15
- export declare abstract class PluginSpaceApi {
16
- constructor();
17
- /**
18
- * Create a rectangular (box) space.
19
- *
20
- * Generates an axis-aligned box with the given dimensions at the
21
- * specified position. The created space is automatically assigned
22
- * to the active story and a default department.
23
- *
24
- * @param args - An object containing:
25
- * - {@linkcode PluginSpaceCreateRectangularArgs.position args.position} — Origin
26
- * position as a {@linkcode PVec3} in Babylon units
27
- * - {@linkcode PluginSpaceCreateRectangularArgs.dimensions args.dimensions} — Box
28
- * dimensions `{ width, height, depth }` in Babylon units
29
- * @returns A {@linkcode PluginSpaceCreateRectangularResult} with the `spaceId`
30
- * of the created space
31
- * @throws If space creation fails
32
- *
33
- * # Example
34
- * ```ts
35
- * const { vec3 } = snaptrude.core.math
36
- *
37
- * const { spaceId } = await snaptrude.entity.space.createRectangular({
38
- * position: vec3.new(0, 0, 0),
39
- * dimensions: { width: 5, height: 3, depth: 4 },
40
- * })
41
- * ```
42
- */
43
- abstract createRectangular({ position, dimensions, }: PluginSpaceCreateRectangularArgs): PluginApiReturn<PluginSpaceCreateRectangularResult>;
44
- /**
45
- * Create a space by extruding a 2D profile.
46
- *
47
- * The {@linkcode PluginSpaceCreateFromProfileArgs.profile profile} is extruded
48
- * upward (along the Y axis) by {@linkcode PluginSpaceCreateFromProfileArgs.extrudeHeight
49
- * extrudeHeight}, then offset by {@linkcode PluginSpaceCreateFromProfileArgs.position
50
- * position}. The created space is automatically assigned to the active story
51
- * and a default department.
52
- *
53
- * Use {@linkcode PluginProfileApi.fromLinePoints} to quickly build a profile
54
- * from a list of points.
55
- *
56
- * @param args - An object containing:
57
- * - {@linkcode PluginSpaceCreateFromProfileArgs.profile args.profile} — A closed
58
- * {@linkcode PProfile} defining the floor shape
59
- * - {@linkcode PluginSpaceCreateFromProfileArgs.extrudeHeight args.extrudeHeight} —
60
- * Extrusion height in Babylon units
61
- * - {@linkcode PluginSpaceCreateFromProfileArgs.position args.position} — Offset
62
- * position as a {@linkcode PVec3} in Babylon units
63
- * @returns A {@linkcode PluginSpaceCreateFromProfileResult} with the `spaceId`
64
- * of the created space
65
- * @throws If the profile is invalid or mesh creation fails
66
- *
67
- * # Example
68
- * ```ts
69
- * const { vec3 } = snaptrude.core.math
70
- *
71
- * const profile = await snaptrude.core.geom.profile.fromLinePoints({
72
- * points: [
73
- * vec3.new(0, 0, 0),
74
- * vec3.new(10, 0, 0),
75
- * vec3.new(10, 0, 8),
76
- * vec3.new(0, 0, 8),
77
- * ],
78
- * })
79
- *
80
- * const { spaceId } = await snaptrude.entity.space.createFromProfile({
81
- * profile,
82
- * extrudeHeight: 3,
83
- * position: vec3.new(0, 0, 0),
84
- * })
85
- * ```
86
- */
87
- abstract createFromProfile({ profile, extrudeHeight, position, }: PluginSpaceCreateFromProfileArgs): PluginApiReturn<PluginSpaceCreateFromProfileResult>;
88
- /**
89
- * Update a space's BRep and mesh geometry by extruding a 2D profile.
90
- *
91
- * The {@linkcode PluginSpaceUpdateGeometryFromProfileArgs.profile profile} is
92
- * extruded upward (along the Y axis) by
93
- * {@linkcode PluginSpaceUpdateGeometryFromProfileArgs.extrudeHeight extrudeHeight}
94
- * and applied to the existing space. The space keeps the same `spaceId`,
95
- * metadata, department, and transform; only its geometry is replaced.
96
- *
97
- * Profile points are interpreted in scene coordinates. Profiles returned by
98
- * {@linkcode PluginSpaceApi.get} with `"profile"` can be passed back directly;
99
- * `"planPoints"` can be used to construct line-only profiles in the same X/Z
100
- * plan coordinate space.
101
- *
102
- * Use {@linkcode PluginProfileApi.fromLinePoints} to quickly build a profile
103
- * from a list of points.
104
- *
105
- * @param args - An object containing:
106
- * - {@linkcode PluginSpaceUpdateGeometryFromProfileArgs.spaceId args.spaceId} —
107
- * The unique space ID to update
108
- * - {@linkcode PluginSpaceUpdateGeometryFromProfileArgs.profile args.profile} —
109
- * A closed {@linkcode PProfile} defining the new floor shape
110
- * - {@linkcode PluginSpaceUpdateGeometryFromProfileArgs.extrudeHeight
111
- * args.extrudeHeight} — New extrusion height in Babylon units
112
- * @returns A {@linkcode PluginSpaceUpdateGeometryFromProfileResult} with the
113
- * `spaceId` of the updated space
114
- * @throws If the space does not exist, the component is not a space/mass, the
115
- * height is not positive, or the profile cannot create valid geometry
116
- *
117
- * # Example
118
- * ```ts
119
- * const { vec3 } = snaptrude.core.math
120
- *
121
- * const profile = await snaptrude.core.geom.profile.fromLinePoints({
122
- * points: [
123
- * vec3.new(0, 0, 0),
124
- * vec3.new(12, 0, 0),
125
- * vec3.new(12, 0, 6),
126
- * vec3.new(0, 0, 6),
127
- * ],
128
- * })
129
- *
130
- * const { spaceId } = await snaptrude.entity.space.updateGeometryFromProfile({
131
- * spaceId: "some-space-id",
132
- * profile,
133
- * extrudeHeight: 4,
134
- * })
135
- * ```
136
- */
137
- abstract updateGeometryFromProfile({ spaceId, profile, extrudeHeight, }: PluginSpaceUpdateGeometryFromProfileArgs): PluginApiReturn<PluginSpaceUpdateGeometryFromProfileResult>;
138
- /**
139
- * Get the IDs of all spaces in the current project.
140
- *
141
- * Returns every space (mass that is not a building) across all stories.
142
- * Use the returned IDs with {@linkcode PluginSpaceApi.get} to query
143
- * individual space properties.
144
- *
145
- * @returns A {@linkcode PluginSpaceGetAllResult} with a `spacesIds` array
146
- *
147
- * # Example
148
- * ```ts
149
- * const { spacesIds } = await snaptrude.entity.space.getAll()
150
- * console.log(`Project has ${spacesIds.length} spaces`)
151
- * ```
152
- */
153
- abstract getAll(): PluginApiReturn<PluginSpaceGetAllResult>;
154
- /**
155
- * Get properties of a space by its ID.
156
- *
157
- * Only the properties listed in {@linkcode PluginSpaceGetArgs.properties
158
- * args.properties} are returned — unlisted properties will be `undefined`
159
- * in the result.
160
- *
161
- * @param args - An object containing:
162
- * - {@linkcode PluginSpaceGetArgs.spaceId args.spaceId} — The unique space ID
163
- * (as returned by creation methods or {@linkcode PluginSpaceApi.getAll})
164
- * - {@linkcode PluginSpaceGetArgs.properties args.properties} — Array of property
165
- * names to retrieve. See {@linkcode PluginSpaceGetProperty} for available values.
166
- * @returns A partial {@linkcode PluginSpaceGetResult} containing only the requested
167
- * properties
168
- * @throws If the space does not exist or the component is not a space/mass
169
- *
170
- * # Example
171
- * ```ts
172
- * const info = await snaptrude.entity.space.get({
173
- * spaceId: "some-space-id",
174
- * properties: ["name", "area", "position"],
175
- * })
176
- * console.log(info.name, info.area, info.position)
177
- * ```
178
- */
179
- abstract get({ spaceId, properties, }: PluginSpaceGetArgs): PluginApiReturn<PluginSpaceGetResult>;
180
- /**
181
- * Delete a space by its ID.
182
- *
183
- * Permanently removes the space and its associated mesh from the scene.
184
- * This operation is undoable via Snaptrude's command system.
185
- *
186
- * @param args - An object containing:
187
- * - {@linkcode PluginSpaceDeleteArgs.spaceId args.spaceId} — The unique space ID
188
- * to delete
189
- * @throws If the space does not exist or the component is not a space/mass
190
- *
191
- * # Example
192
- * ```ts
193
- * await snaptrude.entity.space.delete({ spaceId: "some-space-id" })
194
- * ```
195
- */
196
- abstract delete({ spaceId, }: PluginSpaceDeleteArgs): PluginApiReturn<PluginSpaceDeleteResult>;
197
- /**
198
- * Update properties of a space by its ID.
199
- *
200
- * Only the properties provided in {@linkcode PluginSpaceUpdateArgs.properties
201
- * args.properties} will be updated — omitted properties remain unchanged.
202
- * This operation is undoable via Snaptrude's command system.
203
- *
204
- * @param args - An object containing:
205
- * - {@linkcode PluginSpaceUpdateArgs.spaceId args.spaceId} — The unique space ID
206
- * to update
207
- * - {@linkcode PluginSpaceUpdateArgs.properties args.properties} — Key/value pairs
208
- * of properties to update. See {@linkcode PluginSpaceUpdateArgs} for supported fields.
209
- * @returns A {@linkcode PluginSpaceUpdateResult} echoing back the `spaceId` and
210
- * the updated property values
211
- * @throws If the space does not exist or the component is not a space/mass
212
- *
213
- * # Example
214
- * ```ts
215
- * const result = await snaptrude.entity.space.update({
216
- * spaceId: "some-space-id",
217
- * properties: {
218
- * room_type: "Kitchen",
219
- * massType: "Room",
220
- * departmentId: "CORE",
221
- * },
222
- * })
223
- * ```
224
- */
225
- abstract update(args: PluginSpaceUpdateArgs): PluginApiReturn<PluginSpaceUpdateResult>;
226
- }
227
- /**
228
- * Arguments for {@linkcode PluginSpaceApi.createRectangular}.
229
- *
230
- * | Property | Type | Description |
231
- * |---|---|---|
232
- * | `position` | {@linkcode PVec3} | Origin position in Babylon units |
233
- * | `dimensions` | `{ width, height, depth }` | Box dimensions in Babylon units |
234
- */
235
- export declare const PluginSpaceCreateRectangularArgs: z.ZodObject<{
236
- position: z.ZodObject<{
237
- x: z.ZodNumber;
238
- y: z.ZodNumber;
239
- z: z.ZodNumber;
240
- }, z.core.$strip>;
241
- dimensions: z.ZodObject<{
242
- width: z.ZodNumber;
243
- height: z.ZodNumber;
244
- depth: z.ZodNumber;
245
- }, z.core.$strip>;
246
- }, z.core.$strip>;
247
- export type PluginSpaceCreateRectangularArgs = z.infer<typeof PluginSpaceCreateRectangularArgs>;
248
- /**
249
- * Result of {@linkcode PluginSpaceApi.createRectangular}.
250
- *
251
- * | Property | Type | Description |
252
- * |---|---|---|
253
- * | `spaceId` | `string` | Unique ID of the created space |
254
- */
255
- export declare const PluginSpaceCreateRectangularResult: z.ZodObject<{
256
- spaceId: z.ZodString;
257
- }, z.core.$strip>;
258
- export type PluginSpaceCreateRectangularResult = z.infer<typeof PluginSpaceCreateRectangularResult>;
259
- /**
260
- * Arguments for {@linkcode PluginSpaceApi.createFromProfile}.
261
- *
262
- * | Property | Type | Description |
263
- * |---|---|---|
264
- * | `profile` | {@linkcode PProfile} | Closed 2D profile defining the floor shape |
265
- * | `extrudeHeight` | `number` | Extrusion height in Babylon units |
266
- * | `position` | {@linkcode PVec3} | Offset position in Babylon units |
267
- */
268
- export declare const PluginSpaceCreateFromProfileArgs: z.ZodObject<{
269
- profile: z.ZodObject<{
270
- curves: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
271
- curveType: z.ZodLiteral<"Line">;
272
- startPoint: z.ZodObject<{
273
- x: z.ZodNumber;
274
- y: z.ZodNumber;
275
- z: z.ZodNumber;
276
- }, z.core.$strip>;
277
- endPoint: z.ZodObject<{
278
- x: z.ZodNumber;
279
- y: z.ZodNumber;
280
- z: z.ZodNumber;
281
- }, z.core.$strip>;
282
- }, z.core.$strip>, z.ZodObject<{
283
- curveType: z.ZodLiteral<"Arc">;
284
- startPoint: z.ZodObject<{
285
- x: z.ZodNumber;
286
- y: z.ZodNumber;
287
- z: z.ZodNumber;
288
- }, z.core.$strip>;
289
- endPoint: z.ZodObject<{
290
- x: z.ZodNumber;
291
- y: z.ZodNumber;
292
- z: z.ZodNumber;
293
- }, z.core.$strip>;
294
- centrePoint: z.ZodObject<{
295
- x: z.ZodNumber;
296
- y: z.ZodNumber;
297
- z: z.ZodNumber;
298
- }, z.core.$strip>;
299
- axis: z.ZodObject<{
300
- x: z.ZodNumber;
301
- y: z.ZodNumber;
302
- z: z.ZodNumber;
303
- }, z.core.$strip>;
304
- }, z.core.$strip>], "curveType">>;
305
- }, z.core.$strip>;
306
- extrudeHeight: z.ZodNumber;
307
- position: z.ZodObject<{
308
- x: z.ZodNumber;
309
- y: z.ZodNumber;
310
- z: z.ZodNumber;
311
- }, z.core.$strip>;
312
- }, z.core.$strip>;
313
- export type PluginSpaceCreateFromProfileArgs = z.infer<typeof PluginSpaceCreateFromProfileArgs>;
314
- /**
315
- * Result of {@linkcode PluginSpaceApi.createFromProfile}.
316
- *
317
- * | Property | Type | Description |
318
- * |---|---|---|
319
- * | `spaceId` | `string` | Unique ID of the created space |
320
- */
321
- export declare const PluginSpaceCreateFromProfileResult: z.ZodObject<{
322
- spaceId: z.ZodString;
323
- }, z.core.$strip>;
324
- export type PluginSpaceCreateFromProfileResult = z.infer<typeof PluginSpaceCreateFromProfileResult>;
325
- /**
326
- * Arguments for {@linkcode PluginSpaceApi.updateGeometryFromProfile}.
327
- *
328
- * | Property | Type | Description |
329
- * |---|---|---|
330
- * | `spaceId` | `string` | Space to update |
331
- * | `profile` | {@linkcode PProfile} | Closed 2D profile defining the new floor shape |
332
- * | `extrudeHeight` | `number` | New extrusion height in Babylon units |
333
- */
334
- export declare const PluginSpaceUpdateGeometryFromProfileArgs: z.ZodObject<{
335
- spaceId: z.ZodString;
336
- profile: z.ZodObject<{
337
- curves: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
338
- curveType: z.ZodLiteral<"Line">;
339
- startPoint: z.ZodObject<{
340
- x: z.ZodNumber;
341
- y: z.ZodNumber;
342
- z: z.ZodNumber;
343
- }, z.core.$strip>;
344
- endPoint: z.ZodObject<{
345
- x: z.ZodNumber;
346
- y: z.ZodNumber;
347
- z: z.ZodNumber;
348
- }, z.core.$strip>;
349
- }, z.core.$strip>, z.ZodObject<{
350
- curveType: z.ZodLiteral<"Arc">;
351
- startPoint: z.ZodObject<{
352
- x: z.ZodNumber;
353
- y: z.ZodNumber;
354
- z: z.ZodNumber;
355
- }, z.core.$strip>;
356
- endPoint: z.ZodObject<{
357
- x: z.ZodNumber;
358
- y: z.ZodNumber;
359
- z: z.ZodNumber;
360
- }, z.core.$strip>;
361
- centrePoint: z.ZodObject<{
362
- x: z.ZodNumber;
363
- y: z.ZodNumber;
364
- z: z.ZodNumber;
365
- }, z.core.$strip>;
366
- axis: z.ZodObject<{
367
- x: z.ZodNumber;
368
- y: z.ZodNumber;
369
- z: z.ZodNumber;
370
- }, z.core.$strip>;
371
- }, z.core.$strip>], "curveType">>;
372
- }, z.core.$strip>;
373
- extrudeHeight: z.ZodNumber;
374
- }, z.core.$strip>;
375
- export type PluginSpaceUpdateGeometryFromProfileArgs = z.infer<typeof PluginSpaceUpdateGeometryFromProfileArgs>;
376
- /**
377
- * Result of {@linkcode PluginSpaceApi.updateGeometryFromProfile}.
378
- *
379
- * | Property | Type | Description |
380
- * |---|---|---|
381
- * | `spaceId` | `string` | Unique ID of the updated space |
382
- */
383
- export declare const PluginSpaceUpdateGeometryFromProfileResult: z.ZodObject<{
384
- spaceId: z.ZodString;
385
- }, z.core.$strip>;
386
- export type PluginSpaceUpdateGeometryFromProfileResult = z.infer<typeof PluginSpaceUpdateGeometryFromProfileResult>;
387
- /**
388
- * Available properties that can be queried on a space.
389
- *
390
- * **Basic:**
391
- * | Value | Return Type | Description |
392
- * |---|---|---|
393
- * | `"id"` | `string` | Unique space identifier |
394
- * | `"type"` | `string` | Component type |
395
- * | `"room_type"` | `string` | Room type classification |
396
- * | `"name"` | `string` | Display name of the space |
397
- *
398
- * **Derived from parametric data:**
399
- * | Value | Return Type | Description |
400
- * |---|---|---|
401
- * | `"area"` | `number` | Bottom face area (from `areas_bottomFace`) |
402
- * | `"breadth"` | `number` | Breadth dimension |
403
- * | `"depth"` | `number` | Depth dimension |
404
- * | `"height"` | `number` | Height dimension |
405
- * | `"massType"` | `string \| null` | Mass type classification |
406
- * | `"spaceType"` | `string \| null` | Space type classification (Room, Balcony, etc.) |
407
- * | `"storey"` | `number \| null` | Story the space belongs to |
408
- * | `"departmentId"` | `string \| null` | Assigned department ID |
409
- * | `"departmentName"` | `string` | Assigned department name |
410
- * | `"departmentColor"` | `string` | Assigned department color (hex/CSS) |
411
- *
412
- * **Derived from mesh:**
413
- * | Value | Return Type | Description |
414
- * |---|---|---|
415
- * | `"position"` | {@linkcode PVec3} | Local position relative to parent |
416
- * | `"absolutePosition"` | {@linkcode PVec3} | Absolute position in the scene |
417
- * | `"rotation"` | {@linkcode PVec3} | Euler rotation angles (radians) |
418
- * | `"rotationQuaternion"` | {@linkcode PQuat} \| `null` | Quaternion rotation, or `null` if unset |
419
- *
420
- * **Derived from brep:**
421
- * | Value | Return Type | Description |
422
- * |---|---|---|
423
- * | `"planPoints"` | {@linkcode PVec3}`[]` | Bottom outer profile points in world space with `y = 0` (2D plan). No closing duplicate point. |
424
- * | `"profile"` | {@linkcode PProfile} | Bottom outer profile in world space, preserving line/arc curve data. |
425
- */
426
- export declare const PluginSpaceGetProperty: z.ZodEnum<{
427
- type: "type";
428
- name: "name";
429
- departmentId: "departmentId";
430
- id: "id";
431
- profile: "profile";
432
- position: "position";
433
- height: "height";
434
- depth: "depth";
435
- room_type: "room_type";
436
- area: "area";
437
- breadth: "breadth";
438
- massType: "massType";
439
- spaceType: "spaceType";
440
- storey: "storey";
441
- departmentName: "departmentName";
442
- departmentColor: "departmentColor";
443
- absolutePosition: "absolutePosition";
444
- rotation: "rotation";
445
- rotationQuaternion: "rotationQuaternion";
446
- planPoints: "planPoints";
447
- }>;
448
- /**
449
- * Arguments for {@linkcode PluginSpaceApi.get}.
450
- *
451
- * | Property | Type | Description |
452
- * |---|---|---|
453
- * | `spaceId` | `string` | The space ID to query |
454
- * | `properties` | {@linkcode PluginSpaceGetProperty}`[]` | Properties to retrieve |
455
- */
456
- export declare const PluginSpaceGetArgs: z.ZodObject<{
457
- spaceId: z.ZodString;
458
- properties: z.ZodArray<z.ZodEnum<{
459
- type: "type";
460
- name: "name";
461
- departmentId: "departmentId";
462
- id: "id";
463
- profile: "profile";
464
- position: "position";
465
- height: "height";
466
- depth: "depth";
467
- room_type: "room_type";
468
- area: "area";
469
- breadth: "breadth";
470
- massType: "massType";
471
- spaceType: "spaceType";
472
- storey: "storey";
473
- departmentName: "departmentName";
474
- departmentColor: "departmentColor";
475
- absolutePosition: "absolutePosition";
476
- rotation: "rotation";
477
- rotationQuaternion: "rotationQuaternion";
478
- planPoints: "planPoints";
479
- }>>;
480
- }, z.core.$strip>;
481
- export type PluginSpaceGetArgs = z.infer<typeof PluginSpaceGetArgs>;
482
- /**
483
- * Supported space type values.
484
- *
485
- * Mirrors the internal `SpaceType` enum from `spaceType.types.ts`.
486
- *
487
- * | Value | Description |
488
- * |---|---|
489
- * | `"Room"` | Standard room |
490
- * | `"Program Block"` | Program/department block |
491
- * | `"Balcony"` | Balcony space |
492
- * | `"Road"` | Road |
493
- * | `"Garden"` | Garden area |
494
- * | `"Deck"` | Deck |
495
- * | `"Pool"` | Pool |
496
- * | `"Walkway"` | Walkway |
497
- * | `"Envelope"` | Envelope |
498
- * | `"Parking"` | Parking area |
499
- */
500
- export declare const PluginSpaceType: z.ZodEnum<{
501
- Room: "Room";
502
- "Program Block": "Program Block";
503
- Balcony: "Balcony";
504
- Road: "Road";
505
- Garden: "Garden";
506
- Deck: "Deck";
507
- Pool: "Pool";
508
- Walkway: "Walkway";
509
- Envelope: "Envelope";
510
- Parking: "Parking";
511
- }>;
512
- /**
513
- * Result of {@linkcode PluginSpaceApi.get}.
514
- *
515
- * A partial object — only the properties that were requested in
516
- * {@linkcode PluginSpaceGetArgs.properties} will be present.
517
- */
518
- export declare const PluginSpaceGetResult: z.ZodObject<{
519
- id: z.ZodOptional<z.ZodString>;
520
- type: z.ZodOptional<z.ZodString>;
521
- room_type: z.ZodOptional<z.ZodString>;
522
- name: z.ZodOptional<z.ZodString>;
523
- area: z.ZodOptional<z.ZodNumber>;
524
- breadth: z.ZodOptional<z.ZodNumber>;
525
- depth: z.ZodOptional<z.ZodNumber>;
526
- height: z.ZodOptional<z.ZodNumber>;
527
- massType: z.ZodOptional<z.ZodNullable<z.ZodString>>;
528
- spaceType: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
529
- Room: "Room";
530
- "Program Block": "Program Block";
531
- Balcony: "Balcony";
532
- Road: "Road";
533
- Garden: "Garden";
534
- Deck: "Deck";
535
- Pool: "Pool";
536
- Walkway: "Walkway";
537
- Envelope: "Envelope";
538
- Parking: "Parking";
539
- }>>>;
540
- storey: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
541
- departmentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
542
- departmentName: z.ZodOptional<z.ZodString>;
543
- departmentColor: z.ZodOptional<z.ZodString>;
544
- position: z.ZodOptional<z.ZodObject<{
545
- x: z.ZodNumber;
546
- y: z.ZodNumber;
547
- z: z.ZodNumber;
548
- }, z.core.$strip>>;
549
- absolutePosition: z.ZodOptional<z.ZodObject<{
550
- x: z.ZodNumber;
551
- y: z.ZodNumber;
552
- z: z.ZodNumber;
553
- }, z.core.$strip>>;
554
- rotation: z.ZodOptional<z.ZodObject<{
555
- x: z.ZodNumber;
556
- y: z.ZodNumber;
557
- z: z.ZodNumber;
558
- }, z.core.$strip>>;
559
- rotationQuaternion: z.ZodOptional<z.ZodNullable<z.ZodObject<{
560
- x: z.ZodNumber;
561
- y: z.ZodNumber;
562
- z: z.ZodNumber;
563
- w: z.ZodNumber;
564
- }, z.core.$strip>>>;
565
- planPoints: z.ZodOptional<z.ZodArray<z.ZodObject<{
566
- x: z.ZodNumber;
567
- y: z.ZodNumber;
568
- z: z.ZodNumber;
569
- }, z.core.$strip>>>;
570
- profile: z.ZodOptional<z.ZodObject<{
571
- curves: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
572
- curveType: z.ZodLiteral<"Line">;
573
- startPoint: z.ZodObject<{
574
- x: z.ZodNumber;
575
- y: z.ZodNumber;
576
- z: z.ZodNumber;
577
- }, z.core.$strip>;
578
- endPoint: z.ZodObject<{
579
- x: z.ZodNumber;
580
- y: z.ZodNumber;
581
- z: z.ZodNumber;
582
- }, z.core.$strip>;
583
- }, z.core.$strip>, z.ZodObject<{
584
- curveType: z.ZodLiteral<"Arc">;
585
- startPoint: z.ZodObject<{
586
- x: z.ZodNumber;
587
- y: z.ZodNumber;
588
- z: z.ZodNumber;
589
- }, z.core.$strip>;
590
- endPoint: z.ZodObject<{
591
- x: z.ZodNumber;
592
- y: z.ZodNumber;
593
- z: z.ZodNumber;
594
- }, z.core.$strip>;
595
- centrePoint: z.ZodObject<{
596
- x: z.ZodNumber;
597
- y: z.ZodNumber;
598
- z: z.ZodNumber;
599
- }, z.core.$strip>;
600
- axis: z.ZodObject<{
601
- x: z.ZodNumber;
602
- y: z.ZodNumber;
603
- z: z.ZodNumber;
604
- }, z.core.$strip>;
605
- }, z.core.$strip>], "curveType">>;
606
- }, z.core.$strip>>;
607
- }, z.core.$strip>;
608
- export type PluginSpaceGetResult = z.infer<typeof PluginSpaceGetResult>;
609
- /**
610
- * Result of {@linkcode PluginSpaceApi.getAll}.
611
- *
612
- * | Property | Type | Description |
613
- * |---|---|---|
614
- * | `spacesIds` | `string[]` | IDs of all spaces in the project |
615
- */
616
- export declare const PluginSpaceGetAllResult: z.ZodObject<{
617
- spacesIds: z.ZodArray<z.ZodString>;
618
- }, z.core.$strip>;
619
- export type PluginSpaceGetAllResult = z.infer<typeof PluginSpaceGetAllResult>;
620
- /**
621
- * Arguments for {@linkcode PluginSpaceApi.delete}.
622
- *
623
- * | Property | Type | Description |
624
- * |---|---|---|
625
- * | `spaceId` | `string` | The space ID to delete |
626
- */
627
- export declare const PluginSpaceDeleteArgs: z.ZodObject<{
628
- spaceId: z.ZodString;
629
- }, z.core.$strip>;
630
- export type PluginSpaceDeleteArgs = z.infer<typeof PluginSpaceDeleteArgs>;
631
- /** Result type for {@linkcode PluginSpaceApi.delete} — returns nothing on success. */
632
- export type PluginSpaceDeleteResult = void;
633
- /**
634
- * Supported mass type values for {@linkcode PluginSpaceUpdateArgs.properties.massType}.
635
- *
636
- * Mirrors the internal `MASS_TYPES` enum.
637
- *
638
- * | Value | Description |
639
- * |---|---|
640
- * | `"Plinth"` | Plinth mass |
641
- * | `"Void"` | Void/cut-out |
642
- * | `"Pergola"` | Pergola structure |
643
- * | `"Furniture"` | Furniture element |
644
- * | `"Facade element"` | Facade element |
645
- * | `"Generic mass"` | Generic mass |
646
- * | `"Room"` | Room (default for spaces) |
647
- * | `"Department"` | Department block |
648
- * | `"Building"` | Building envelope |
649
- * | `"Revit Import"` | Imported from Revit |
650
- * | `"Mass"` | Generic mass type |
651
- * | `"Site"` | Site object |
652
- */
653
- export declare const PluginMassType: z.ZodEnum<{
654
- Room: "Room";
655
- Plinth: "Plinth";
656
- Void: "Void";
657
- Pergola: "Pergola";
658
- Furniture: "Furniture";
659
- "Facade element": "Facade element";
660
- "Generic mass": "Generic mass";
661
- Department: "Department";
662
- Building: "Building";
663
- "Revit Import": "Revit Import";
664
- Mass: "Mass";
665
- Site: "Site";
666
- }>;
667
- /**
668
- * Well-known (built-in) department IDs.
669
- *
670
- * | Value | Department |
671
- * |---|---|
672
- * | `"DEFAULT"` | Default department |
673
- * | `"SITE"` | Site department |
674
- * | `"ENVELOPE"` | Envelope department |
675
- * | `"CORE"` | Core department |
676
- */
677
- export declare const PluginWellKnownDepartmentId: z.ZodEnum<{
678
- DEFAULT: "DEFAULT";
679
- SITE: "SITE";
680
- ENVELOPE: "ENVELOPE";
681
- CORE: "CORE";
682
- }>;
683
- /**
684
- * Accepted department ID values — either a {@linkcode PluginWellKnownDepartmentId}
685
- * or a UUID string for custom (user-created) departments.
686
- */
687
- export declare const PluginDepartmentId: z.ZodUnion<readonly [z.ZodEnum<{
688
- DEFAULT: "DEFAULT";
689
- SITE: "SITE";
690
- ENVELOPE: "ENVELOPE";
691
- CORE: "CORE";
692
- }>, z.ZodUUID]>;
693
- /**
694
- * Arguments for {@linkcode PluginSpaceApi.update}.
695
- *
696
- * | Property | Type | Description |
697
- * |---|---|---|
698
- * | `spaceId` | `string` | The space ID to update |
699
- * | `properties` | `object` | Key/value pairs of properties to update (all optional) |
700
- * | `properties.room_type` | `string?` | New room type label |
701
- * | `properties.massType` | {@linkcode PluginMassType}`?` | New mass type |
702
- * | `properties.departmentId` | {@linkcode PluginDepartmentId}`?` | New department ID |
703
- */
704
- export declare const PluginSpaceUpdateArgs: z.ZodObject<{
705
- spaceId: z.ZodString;
706
- properties: z.ZodObject<{
707
- room_type: z.ZodOptional<z.ZodString>;
708
- massType: z.ZodOptional<z.ZodEnum<{
709
- Room: "Room";
710
- Plinth: "Plinth";
711
- Void: "Void";
712
- Pergola: "Pergola";
713
- Furniture: "Furniture";
714
- "Facade element": "Facade element";
715
- "Generic mass": "Generic mass";
716
- Department: "Department";
717
- Building: "Building";
718
- "Revit Import": "Revit Import";
719
- Mass: "Mass";
720
- Site: "Site";
721
- }>>;
722
- spaceType: z.ZodOptional<z.ZodEnum<{
723
- Room: "Room";
724
- "Program Block": "Program Block";
725
- Balcony: "Balcony";
726
- Road: "Road";
727
- Garden: "Garden";
728
- Deck: "Deck";
729
- Pool: "Pool";
730
- Walkway: "Walkway";
731
- Envelope: "Envelope";
732
- Parking: "Parking";
733
- }>>;
734
- departmentId: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
735
- DEFAULT: "DEFAULT";
736
- SITE: "SITE";
737
- ENVELOPE: "ENVELOPE";
738
- CORE: "CORE";
739
- }>, z.ZodUUID]>>;
740
- }, z.core.$strip>;
741
- }, z.core.$strip>;
742
- export type PluginSpaceUpdateArgs = z.infer<typeof PluginSpaceUpdateArgs>;
743
- /**
744
- * Result of {@linkcode PluginSpaceApi.update}.
745
- *
746
- * Echoes back the `spaceId` and the values of properties that were updated.
747
- * Properties that were not included in the update request will be `undefined`.
748
- *
749
- * | Property | Type | Description |
750
- * |---|---|---|
751
- * | `spaceId` | `string` | The space ID that was updated |
752
- * | `room_type` | `string?` | Updated room type (if changed) |
753
- * | `massType` | `string?` | Updated mass type (if changed) |
754
- * | `spaceType` | `string?` | Updated space type (if changed) |
755
- * | `departmentId` | `string \| null?` | Updated department ID (if changed) |
756
- */
757
- export declare const PluginSpaceUpdateResult: z.ZodObject<{
758
- spaceId: z.ZodString;
759
- room_type: z.ZodOptional<z.ZodString>;
760
- massType: z.ZodOptional<z.ZodString>;
761
- spaceType: z.ZodOptional<z.ZodString>;
762
- departmentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
763
- }, z.core.$strip>;
764
- export type PluginSpaceUpdateResult = z.infer<typeof PluginSpaceUpdateResult>;
765
- //# sourceMappingURL=space.d.ts.map