@snaptrude/plugin-core 0.0.0-dev-20260911064951 → 0.0.0-surfaces-20260921090636

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 (79) hide show
  1. package/CHANGELOG.md +0 -25
  2. package/api-manifest.json +151 -12
  3. package/dist/api/core/geom/create/index.d.ts +918 -93
  4. package/dist/api/core/geom/create/index.d.ts.map +1 -1
  5. package/dist/api/core/geom/query/brep.d.ts +50 -0
  6. package/dist/api/core/geom/query/brep.d.ts.map +1 -1
  7. package/dist/api/core/geom/query/curve.d.ts +58 -35
  8. package/dist/api/core/geom/query/curve.d.ts.map +1 -1
  9. package/dist/api/core/geom/query/edge.d.ts +2 -2
  10. package/dist/api/core/geom/query/face.d.ts +105 -0
  11. package/dist/api/core/geom/query/face.d.ts.map +1 -1
  12. package/dist/api/core/geom/update/curve.d.ts +5 -5
  13. package/dist/api/core/geom/update/profile.d.ts +1 -1
  14. package/dist/api/core/io/import/index.d.ts +1 -3
  15. package/dist/api/core/io/import/index.d.ts.map +1 -1
  16. package/dist/api/design/create/index.d.ts +22 -310
  17. package/dist/api/design/create/index.d.ts.map +1 -1
  18. package/dist/api/design/delete/index.d.ts +0 -4
  19. package/dist/api/design/delete/index.d.ts.map +1 -1
  20. package/dist/api/design/doors/index.d.ts +13 -20
  21. package/dist/api/design/doors/index.d.ts.map +1 -1
  22. package/dist/api/design/index.d.ts +0 -5
  23. package/dist/api/design/index.d.ts.map +1 -1
  24. package/dist/api/design/query/geometry/index.d.ts +27 -1
  25. package/dist/api/design/query/geometry/index.d.ts.map +1 -1
  26. package/dist/api/design/query/index.d.ts +47 -0
  27. package/dist/api/design/query/index.d.ts.map +1 -1
  28. package/dist/api/design/query/spaces.d.ts +5 -5
  29. package/dist/api/design/update/index.d.ts +87 -0
  30. package/dist/api/design/update/index.d.ts.map +1 -1
  31. package/dist/api/entity/referenceLine.d.ts +2 -2
  32. package/dist/api/entity/referenceLine.d.ts.map +1 -1
  33. package/dist/api/entity/space.d.ts +5 -4
  34. package/dist/api/entity/space.d.ts.map +1 -1
  35. package/dist/api/entity/story.d.ts +4 -4
  36. package/dist/api/presentation/annotate.d.ts +2 -2
  37. package/dist/api/presentation/shapes.d.ts +2 -2
  38. package/dist/api/program/site.d.ts +4 -4
  39. package/dist/api/program/spreadsheet.d.ts +4 -4
  40. package/dist/handles.d.ts +12 -22
  41. package/dist/handles.d.ts.map +1 -1
  42. package/dist/index.cjs +2773 -2445
  43. package/dist/index.cjs.map +1 -1
  44. package/dist/index.d.ts +2 -0
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +2726 -2422
  47. package/dist/index.js.map +1 -1
  48. package/dist/massParameters.d.ts +280 -0
  49. package/dist/massParameters.d.ts.map +1 -0
  50. package/dist/massParameters.ops.d.ts +135 -0
  51. package/dist/massParameters.ops.d.ts.map +1 -0
  52. package/package.json +1 -1
  53. package/src/api/core/geom/create/index.ts +1011 -94
  54. package/src/api/core/geom/query/brep.ts +51 -0
  55. package/src/api/core/geom/query/curve.ts +25 -2
  56. package/src/api/core/geom/query/edge.ts +2 -2
  57. package/src/api/core/geom/query/face.ts +109 -4
  58. package/src/api/core/io/import/index.ts +3 -11
  59. package/src/api/design/create/index.ts +38 -335
  60. package/src/api/design/delete/index.ts +0 -4
  61. package/src/api/design/doors/index.ts +13 -20
  62. package/src/api/design/index.ts +0 -5
  63. package/src/api/design/query/geometry/index.ts +29 -0
  64. package/src/api/design/query/index.ts +50 -0
  65. package/src/api/design/update/index.ts +94 -0
  66. package/src/handles.ts +15 -27
  67. package/src/index.ts +2 -0
  68. package/src/massParameters.ops.ts +243 -0
  69. package/src/massParameters.ts +418 -0
  70. package/test/massParameters.test.mjs +936 -0
  71. package/dist/api/design/create/bulk-items.d.ts +0 -185
  72. package/dist/api/design/create/bulk-items.d.ts.map +0 -1
  73. package/dist/api/design/create/opening-fields.d.ts +0 -37
  74. package/dist/api/design/create/opening-fields.d.ts.map +0 -1
  75. package/dist/api/design/dimensions.d.ts +0 -427
  76. package/dist/api/design/dimensions.d.ts.map +0 -1
  77. package/src/api/design/create/bulk-items.ts +0 -186
  78. package/src/api/design/create/opening-fields.ts +0 -37
  79. package/src/api/design/dimensions.ts +0 -453
@@ -3,13 +3,11 @@ import { PluginApiReturn } from "../../../types";
3
3
  import { BrepHandle, ComponentHandle, ContourHandle, ProfileHandle, Vec3Handle } from "../../../handles";
4
4
  import { PluginSpaceType, PluginMassType, PluginDepartmentId } from "../../entity/space";
5
5
  import { PluginBuildableEnvelopePolygonVertex, PluginBuildableEnvelopeSetbackTier, PluginBuildableEnvelopeVerticalCap, PluginBuildableEnvelopeCreateResult } from "../../entity/buildableEnvelope";
6
- import type { PluginCreateDoorItem, PluginCreateFloorItem, PluginCreateFurnitureItem, PluginCreateWallRunItem, PluginCreateWindowItem } from "./bulk-items";
7
6
  /**
8
7
  * `design.create.*` — author new scene-committed BIM entities.
9
8
  *
10
9
  * Every creator takes geometry handles + scalars and returns a
11
- * {@linkcode ComponentHandle} (or `ComponentHandle[]` for plural creators;
12
- * `wallRuns` returns one `ComponentHandle[]` per run) — the
10
+ * {@linkcode ComponentHandle} (or `ComponentHandle[]` for plural creators) — the
13
11
  * `Component.id` of the created entity, resolvable across the rest of the
14
12
  * `design.*` surface. Creation is an undoable host call; it **throws** on failure
15
13
  * (no `Result` wrapper — consistent with `core.geom.create.*`).
@@ -192,49 +190,8 @@ export declare abstract class PluginDesignCreateApi {
192
190
  * const contour = await snaptrude.core.geom.create.contourFromProfile(rect)
193
191
  * const floor = await snaptrude.design.create.floor(contour, 0.1)
194
192
  * ```
195
- *
196
- * @performance For MORE THAN ONE floor, call `design.create.floors(items[])` — one
197
- * host round-trip and ONE undo entry for the whole batch. Looping this single-floor
198
- * creator is N round-trips and N undo entries.
199
193
  */
200
194
  abstract floor(contour: ContourHandle, thickness: number, position?: Vec3Handle): PluginApiReturn<ComponentHandle>;
201
- /**
202
- * Create **many floors** in one undoable operation (bulk plural of
203
- * {@linkcode floor}). Each item extrudes its own footprint contour (outer
204
- * profile + holes) upward by its own `thickness`, at its own optional
205
- * position offset. Validate-all-or-throw; one command.
206
- *
207
- * @param items - One {@linkcode PluginCreateFloorItem} per floor to create
208
- * (≥1, ≤1000)
209
- * @returns the created floors as {@linkcode ComponentHandle}`[]`, in input order
210
- * @throws `VALIDATION` if the items fail the schema (empty array, more than
211
- * 1000 items, a non-positive thickness) or a contour is degenerate;
212
- * `HANDLE_INVALID` if a `contour` or `position` handle is unknown or
213
- * released; `OPERATION_FAILED` if extrusion fails (nothing is created —
214
- * `details.itemIndex` is the failing item); `METHOD_NOT_PERMITTED` if the
215
- * plugin may not write.
216
- *
217
- * @examplePrompt Create floors for all these room outlines at once
218
- * @examplePrompt Add a floor to every space in one operation
219
- * @examplePrompt Bulk create the floor plates for this building
220
- * @examplePrompt Lay 100mm floors across these five footprints in one undo step
221
- * @examplePrompt Create the ground and first floor slabs together
222
- *
223
- * @performance Bulk creator — the whole batch is ONE host round-trip and ONE undo
224
- * entry. Always prefer this over calling `design.create.floor` in a loop: build the
225
- * full `items[]` array first (all contours and offsets up front), then make one call.
226
- *
227
- * # Example
228
- * ```ts
229
- * const rect = await snaptrude.core.geom.create.profileRect(5, 4)
230
- * const contour = await snaptrude.core.geom.create.contourFromProfile(rect)
231
- * const [ground, upper] = await snaptrude.design.create.floors([
232
- * { contour, thickness: 0.1 },
233
- * { contour, thickness: 0.1, position: await snaptrude.core.math.vec3.new(0, 3, 0) },
234
- * ])
235
- * ```
236
- */
237
- abstract floors(items: PluginCreateFloorItem[]): PluginApiReturn<ComponentHandle[]>;
238
195
  /**
239
196
  * Create a **roof** by extruding a footprint contour by `thickness`. Created
240
197
  * flat (extruded downward); pitch/slope is a separate post-creation edit.
@@ -396,63 +353,8 @@ export declare abstract class PluginDesignCreateApi {
396
353
  * centerlines, 3, undefined, brick.label,
397
354
  * )
398
355
  * ```
399
- *
400
- * @performance For MORE THAN ONE run, call `design.create.wallRuns(items[])` — one
401
- * host round-trip and ONE undo entry for every run in the batch. Looping this
402
- * single-run creator is N round-trips and N undo entries.
403
356
  */
404
357
  abstract walls(profile: ProfileHandle, height?: number, thickness?: number, wallType?: string, storey?: number): PluginApiReturn<ComponentHandle[]>;
405
- /**
406
- * Create **many wall runs** in one undoable operation (bulk plural of
407
- * {@linkcode walls}). Each item is one full run — a wall per curve in that
408
- * item's profile chain, mitred at shared endpoints. Junctions resolve within a
409
- * run, not between runs. Each item carries its own
410
- * dimensions, `wallType` and `storey`, so a single call can build a whole
411
- * floor plate or several storeys at once. Validate-all-or-throw; one command.
412
- *
413
- * @param items - One {@linkcode PluginCreateWallRunItem} per run to create
414
- * (≥1, ≤1000)
415
- * @returns one {@linkcode ComponentHandle}`[]` per item, in input order —
416
- * each inner array holding that run's walls in profile-curve order
417
- * @throws `VALIDATION` if the items fail the schema (empty array, more than
418
- * 1000 items, a non-positive height or thickness, a zero-length curve);
419
- * `HANDLE_INVALID` if a `profile` handle is unknown or released;
420
- * `PRECONDITION_FAILED` if a profile has no curves, `wallType` names no
421
- * wall type in the project, or `storey` does not exist;
422
- * `OPERATION_FAILED` if wall creation fails (nothing is created —
423
- * `details.itemIndex` is the failing item); `METHOD_NOT_PERMITTED` if the
424
- * plugin may not write.
425
- *
426
- * @examplePrompt Draw all the walls of this floor plan at once
427
- * @examplePrompt Build every room's perimeter in one operation
428
- * @examplePrompt Bulk create wall runs from these centerlines
429
- * @examplePrompt Create the walls for both storeys in a single undo step
430
- * @examplePrompt Turn these polylines into 200mm brick walls together
431
- *
432
- * @performance Bulk creator — the whole batch is ONE host round-trip and ONE undo
433
- * entry. Always prefer this over calling `design.create.walls` in a loop: build the
434
- * full `items[]` array first (all profiles up front), then make one call.
435
- *
436
- * # Example
437
- * ```ts
438
- * const v = snaptrude.core.math.vec3
439
- * const ground = await snaptrude.core.geom.create.profileFromLinePoints([
440
- * await v.new(0, 0, 0),
441
- * await v.new(8, 0, 0),
442
- * await v.new(8, 0, 6),
443
- * ])
444
- * const upper = await snaptrude.core.geom.create.profileFromLinePoints([
445
- * await v.new(0, 0, 0),
446
- * await v.new(8, 0, 0),
447
- * ])
448
- * const [groundWalls, upperWalls] = await snaptrude.design.create.wallRuns([
449
- * { profile: ground, height: 3, thickness: 0.2 },
450
- * { profile: upper, height: 3, storey: 2 },
451
- * ])
452
- * console.log(groundWalls.length, "walls on the ground floor")
453
- * ```
454
- */
455
- abstract wallRuns(items: PluginCreateWallRunItem[]): PluginApiReturn<ComponentHandle[][]>;
456
358
  /**
457
359
  * Create a **staircase** from a parametric preset, placed at a point.
458
360
  *
@@ -542,19 +444,15 @@ export declare abstract class PluginDesignCreateApi {
542
444
  * `position.y` (the same surface-flush contract as interactive drag-drop) —
543
445
  * pass the floor/storey elevation to stand furniture on it; never add half
544
446
  * the item's height yourself.
545
- * @param options - Optional placement options: `label` — instance name and
546
- * readable label (`design.query.getLabel`; default auto `${name}Ins${n}`);
547
- * `createNewSourceMesh` — legacy flag, kept for compatibility. The host owns
548
- * source-mesh persistence: a catalog source is recorded exactly once, by the
549
- * first placement that brings it in, and this flag cannot skip that record.
447
+ * @param options - Optional placement options: `label` — instance name
448
+ * (default auto `${name}Ins${n}`); `createNewSourceMesh` — emit a
449
+ * source-mesh creation command (default `true`)
550
450
  * @param angleInDegrees - Optional signed rotation about the vertical axis, in
551
451
  * degrees (same convention as {@linkcode PluginDesignTransformApi.rotate}).
552
452
  * Applied at creation time so it is part of the placement's single undo entry.
553
453
  * Default: the item's own (unrotated) orientation.
554
454
  * @returns the {@linkcode ComponentHandle} of the placed furniture instance
555
- * @throws if the catalog id is unknown, the source mesh fails to load, or placement fails;
556
- * `PRECONDITION_FAILED` (`details.engineCode: "TOOL_ACTIVE"`) while the interactive
557
- * furniture tool is active — finish or cancel it first
455
+ * @throws if the catalog id is unknown, the source mesh fails to load, or placement fails
558
456
  *
559
457
  * @examplePrompt Place a chair from the library at this spot
560
458
  * @examplePrompt Add a sofa from the furniture catalog to the living room
@@ -578,58 +476,11 @@ export declare abstract class PluginDesignCreateApi {
578
476
  * 90,
579
477
  * )
580
478
  * ```
581
- *
582
- * @performance For MORE THAN ONE item, call `design.create.furnitureItems(items[])` —
583
- * one host round-trip and ONE undo entry, and a catalog source shared by several
584
- * items is fetched once. Looping this single-item creator is N round-trips.
585
479
  */
586
480
  abstract furniture(catalogId: string, position: Vec3Handle, options?: {
587
481
  label?: string;
588
482
  createNewSourceMesh?: boolean;
589
483
  }, angleInDegrees?: number): PluginApiReturn<ComponentHandle>;
590
- /**
591
- * Place **many furniture items** in one undoable operation (bulk plural of
592
- * {@linkcode furniture}). Each item names a catalog id and an absolute world
593
- * position (`position.y` is the REST elevation — the same grounding contract
594
- * as the singular creator), with optional label and rotation. A catalog
595
- * source shared by several items is fetched and recorded once for the whole
596
- * batch, so the host — not the caller — owns source persistence (there is no
597
- * per-item `createNewSourceMesh`). Validate-all-or-throw; one command.
598
- *
599
- * @param items - One {@linkcode PluginCreateFurnitureItem} per instance to
600
- * place (≥1, ≤1000)
601
- * @returns the placed instances as {@linkcode ComponentHandle}`[]`, in input order
602
- * @throws `VALIDATION` if the items fail the schema (empty array, more than
603
- * 1000 items); `HANDLE_INVALID` if a `position` handle is unknown or
604
- * released; `PRECONDITION_FAILED` if a catalog id is unknown, a furniture
605
- * tool is active, or a parametric group is active (exit it first, or place
606
- * items one at a time with `furniture`); `OPERATION_FAILED` if a source
607
- * mesh fails to load or placement fails (nothing is created —
608
- * `details.itemIndex` is the failing item); `METHOD_NOT_PERMITTED` if the plugin may not write.
609
- *
610
- * @examplePrompt Place all the desks for this office at once
611
- * @examplePrompt Furnish every bedroom in one operation
612
- * @examplePrompt Bulk place these chairs around the table
613
- * @examplePrompt Add the whole furniture layout in a single undo step
614
- * @examplePrompt Drop twenty copies of this chair at these positions
615
- *
616
- * @performance Bulk creator — the whole batch is ONE host round-trip and ONE undo
617
- * entry, and each distinct catalog source loads once. Always prefer this over
618
- * calling `design.create.furniture` in a loop: build the full `items[]` array
619
- * first (all positions and angles up front), then make one call.
620
- *
621
- * # Example
622
- * ```ts
623
- * const v = snaptrude.core.math.vec3
624
- * const [chair] = await snaptrude.design.furniture.listCatalog()
625
- * const placed = await snaptrude.design.create.furnitureItems([
626
- * { catalogId: chair.id, position: await v.new(3, 0, 5), label: "Chair-01" },
627
- * { catalogId: chair.id, position: await v.new(4, 0, 5), angleInDegrees: 90 },
628
- * { catalogId: chair.id, position: await v.new(5, 0, 5), angleInDegrees: 180 },
629
- * ])
630
- * ```
631
- */
632
- abstract furnitureItems(items: PluginCreateFurnitureItem[]): PluginApiReturn<ComponentHandle[]>;
633
484
  /**
634
485
  * Place a **door** from the catalog into a host wall.
635
486
  *
@@ -643,15 +494,12 @@ export declare abstract class PluginDesignCreateApi {
643
494
  * @param catalogId - Library id: team `_id` or general `fullName`
644
495
  * @param hostWall - The wall to host the door
645
496
  * @param position - World point projected onto the wall to locate the opening
646
- * @param options - Optional placement options: `label` — instance name;
647
- * `hinge` — world point near the jamb the door is hinged on (the door is
648
- * reflected along the wall so its hinged jamb is the one nearer this
649
- * point; default the catalog item's authored hinge side)
650
- * @param facing - World point on the side of the wall the door swings open
651
- * to (the room it opens into — where the plan symbol draws the swing arc).
652
- * Any point clearly on that side works (e.g. the room's center). Default:
653
- * the engine picks a side (nondeterministic when `position` sits on the
654
- * wall centerline).
497
+ * @param options - Optional placement options: `label` — instance name
498
+ * @param facing - World point selecting which side of the wall the door faces
499
+ * (the room it opens into) — the same convention as approaching the wall
500
+ * from that side with the cursor in the interactive tool. Any point clearly
501
+ * on that side works (e.g. the room's center). Default: the engine picks a
502
+ * side (nondeterministic when `position` sits on the wall centerline).
655
503
  * @returns the {@linkcode ComponentHandle} of the placed door
656
504
  * @throws if the catalog id is unknown, the host is not a wall, the source
657
505
  * mesh fails to load, or the projected point falls **outside** the host wall
@@ -662,7 +510,6 @@ export declare abstract class PluginDesignCreateApi {
662
510
  * @examplePrompt Insert the entrance door into this wall
663
511
  * @examplePrompt Add a door to the wall and call it Entry-01
664
512
  * @examplePrompt Add a door that opens into the living room
665
- * @examplePrompt Put a door here hinged on the north jamb
666
513
  *
667
514
  * # Example
668
515
  * ```ts
@@ -682,76 +529,11 @@ export declare abstract class PluginDesignCreateApi {
682
529
  * undefined,
683
530
  * await snaptrude.core.math.vec3.new(3, 0, 9),
684
531
  * )
685
- * // …and hinged on the jamb nearest a point (here the +x end of the opening):
686
- * const hingedRight = await snaptrude.design.create.door(
687
- * entry.id,
688
- * wall,
689
- * await snaptrude.core.math.vec3.new(3, 0, 5),
690
- * { hinge: await snaptrude.core.math.vec3.new(3.5, 0, 5) },
691
- * await snaptrude.core.math.vec3.new(3, 0, 9),
692
- * )
693
532
  * ```
694
- *
695
- * @performance For MORE THAN ONE door, call `design.create.doors(items[])` — one host
696
- * round-trip and ONE undo entry, with each host wall re-cut once per opening inside
697
- * that single call. Looping this single-door creator is N round-trips.
698
533
  */
699
534
  abstract door(catalogId: string, hostWall: ComponentHandle, position: Vec3Handle, options?: {
700
535
  label?: string;
701
- hinge?: Vec3Handle;
702
536
  }, facing?: Vec3Handle): PluginApiReturn<ComponentHandle>;
703
- /**
704
- * Place **many doors** into host walls in one undoable operation (bulk plural
705
- * of {@linkcode door}). Each item carries its own catalog id, host wall,
706
- * world position, and optional `facing`, `label`, `width` and `height` — the
707
- * same fields as a `"door"` {@linkcode PluginDesignCreateOpeningOptions}.
708
- * Validate-all-or-throw; one command.
709
- *
710
- * As with the singular creator, placing an opening **re-cuts its host wall**:
711
- * the wall you passed as `hostWall` stops resolving once the call returns.
712
- * Several items MAY name the same original wall handle in one call — the host
713
- * chains the re-cuts internally — but after the call recover the surviving
714
- * wall with `design.query.getHost(opening)`, never by reusing the handle you
715
- * passed in.
716
- *
717
- * @param items - One {@linkcode PluginCreateDoorItem} per door to place
718
- * (≥1, ≤1000)
719
- * @returns the placed doors as {@linkcode ComponentHandle}`[]`, in input order
720
- * @throws `VALIDATION` if the items fail the schema (empty array, more than
721
- * 1000 items, unknown fields, a non-positive `width`/`height`);
722
- * `HANDLE_INVALID` if a `position`, `facing` or `hinge` handle is unknown
723
- * or released; `PRECONDITION_FAILED` if a catalog id is unknown, a `hostWall`
724
- * is not a wall / is locked / is not in the active proposal, the projected
725
- * point falls outside its host wall, or a door tool is active;
726
- * `OPERATION_FAILED` if a source mesh fails to load or placement fails
727
- * (nothing is created — `details.itemIndex` is the failing item);
728
- * `METHOD_NOT_PERMITTED` if the plugin may not write.
729
- *
730
- * @examplePrompt Add doors to all of these walls at once
731
- * @examplePrompt Place a door in every room in one operation
732
- * @examplePrompt Bulk add the entrance doors from this schedule
733
- * @examplePrompt Put three doors on this wall in a single undo step
734
- * @examplePrompt Add all the doors for this floor plan together
735
- *
736
- * @performance Bulk creator — the whole batch is ONE host round-trip and ONE undo
737
- * entry, and each distinct catalog source loads once. Always prefer this over
738
- * calling `design.create.door` in a loop: build the full `items[]` array first
739
- * (all host walls and points up front), then make one call.
740
- *
741
- * # Example
742
- * ```ts
743
- * const v = snaptrude.core.math.vec3
744
- * const [wall] = await snaptrude.design.query.listWalls({ isSelected: true })
745
- * const [entry] = await snaptrude.design.doors.listCatalog()
746
- * const [front, side] = await snaptrude.design.create.doors([
747
- * { catalogId: entry.id, hostWall: wall, position: await v.new(2, 0, 5), label: "D-01" },
748
- * { catalogId: entry.id, hostWall: wall, position: await v.new(6, 0, 5), width: 1.2 },
749
- * ])
750
- * // `wall` was re-cut twice and no longer resolves — ask the opening for its host:
751
- * const currentWall = await snaptrude.design.query.getHost(front)
752
- * ```
753
- */
754
- abstract doors(items: PluginCreateDoorItem[]): PluginApiReturn<ComponentHandle[]>;
755
537
  /**
756
538
  * Place a **window** from the catalog into a host wall.
757
539
  *
@@ -765,14 +547,11 @@ export declare abstract class PluginDesignCreateApi {
765
547
  * @param catalogId - Library id: team `_id` or general `fullName`
766
548
  * @param hostWall - The wall to host the window
767
549
  * @param position - World point projected onto the wall to locate the opening
768
- * @param options - Optional placement options: `label` — instance name;
769
- * `hinge` — world point near the jamb the window is hinged on (same rule
770
- * as {@linkcode PluginDesignCreateApi.door}; default the catalog item's
771
- * authored side)
772
- * @param facing - World point on the side of the wall the window opens to
773
- * (matters for asymmetric windows, e.g. casement swing) — same convention
774
- * as {@linkcode PluginDesignCreateApi.door}. Default: the engine picks a
775
- * side (nondeterministic when `position` sits on the centerline).
550
+ * @param options - Optional placement options: `label` — instance name
551
+ * @param facing - World point selecting which side of the wall the window
552
+ * faces (matters for asymmetric windows, e.g. casement swing) — same
553
+ * convention as {@linkcode PluginDesignCreateApi.door}. Default: the engine
554
+ * picks a side (nondeterministic when `position` sits on the centerline).
776
555
  * @returns the {@linkcode ComponentHandle} of the placed window
777
556
  * @throws if the catalog id is unknown, the host is not a wall, the source
778
557
  * mesh fails to load, or the projected point falls **outside** the host wall
@@ -795,68 +574,10 @@ export declare abstract class PluginDesignCreateApi {
795
574
  * { label: "Win-01" },
796
575
  * )
797
576
  * ```
798
- *
799
- * @performance For MORE THAN ONE window, call `design.create.windows(items[])` — one
800
- * host round-trip and ONE undo entry, with each host wall re-cut once per opening
801
- * inside that single call. Looping this single-window creator is N round-trips.
802
577
  */
803
578
  abstract window(catalogId: string, hostWall: ComponentHandle, position: Vec3Handle, options?: {
804
579
  label?: string;
805
- hinge?: Vec3Handle;
806
580
  }, facing?: Vec3Handle): PluginApiReturn<ComponentHandle>;
807
- /**
808
- * Place **many windows** into host walls in one undoable operation (bulk
809
- * plural of {@linkcode window}). Each item carries its own catalog id, host
810
- * wall, world position, and optional `facing`, `label`, `width`, `height` and
811
- * `sillHeight` — the same fields as a `"window"`
812
- * {@linkcode PluginDesignCreateOpeningOptions}. `sillHeight` is measured from
813
- * the host wall base to the BOTTOM of the window. Validate-all-or-throw; one
814
- * command.
815
- *
816
- * As with the singular creator, placing an opening **re-cuts its host wall**:
817
- * the wall you passed as `hostWall` stops resolving once the call returns.
818
- * Several items MAY name the same original wall handle in one call — the host
819
- * chains the re-cuts internally — but after the call recover the surviving
820
- * wall with `design.query.getHost(opening)`, never by reusing the handle you
821
- * passed in.
822
- *
823
- * @param items - One {@linkcode PluginCreateWindowItem} per window to place
824
- * (≥1, ≤1000)
825
- * @returns the placed windows as {@linkcode ComponentHandle}`[]`, in input order
826
- * @throws `VALIDATION` if the items fail the schema (empty array, more than
827
- * 1000 items, unknown fields, a non-positive `width`/`height`, a negative
828
- * `sillHeight`); `HANDLE_INVALID` if a `position`, `facing` or `hinge`
829
- * handle is unknown or released; `PRECONDITION_FAILED` if a catalog id is unknown, a
830
- * `hostWall` is not a wall / is locked / is not in the active proposal, the
831
- * projected point falls outside its host wall, or a window tool is active;
832
- * `OPERATION_FAILED` if a source mesh fails to load or placement fails
833
- * (nothing is created — `details.itemIndex` is the failing item);
834
- * `METHOD_NOT_PERMITTED` if the plugin may not write.
835
- *
836
- * @examplePrompt Add windows along this whole facade at once
837
- * @examplePrompt Place a window in every bedroom in one operation
838
- * @examplePrompt Bulk add the windows from this schedule
839
- * @examplePrompt Put four windows on this wall in a single undo step
840
- * @examplePrompt Add all the windows with a 0.9m sill height together
841
- *
842
- * @performance Bulk creator — the whole batch is ONE host round-trip and ONE undo
843
- * entry, and each distinct catalog source loads once. Always prefer this over
844
- * calling `design.create.window` in a loop: build the full `items[]` array first
845
- * (all host walls and points up front), then make one call.
846
- *
847
- * # Example
848
- * ```ts
849
- * const v = snaptrude.core.math.vec3
850
- * const [wall] = await snaptrude.design.query.listWalls({ isSelected: true })
851
- * const [casement] = await snaptrude.design.windows.listCatalog()
852
- * const placed = await snaptrude.design.create.windows([
853
- * { catalogId: casement.id, hostWall: wall, position: await v.new(2, 0, 5), sillHeight: 0.9 },
854
- * { catalogId: casement.id, hostWall: wall, position: await v.new(5, 0, 5), sillHeight: 0.9 },
855
- * ])
856
- * const currentWall = await snaptrude.design.query.getHost(placed[0])
857
- * ```
858
- */
859
- abstract windows(items: PluginCreateWindowItem[]): PluginApiReturn<ComponentHandle[]>;
860
581
  /**
861
582
  * Place a catalog **door or window** into a host wall with optional size overrides.
862
583
  *
@@ -866,7 +587,7 @@ export declare abstract class PluginDesignCreateApi {
866
587
  * its center. Placement is asynchronous and committed as one undoable creation.
867
588
  *
868
589
  * @param options - Opening kind, catalog and host references, placement, and
869
- * optional facing (swing side), hinge (hinged jamb), label, and dimensions
590
+ * optional facing, label, and dimensions
870
591
  * @returns the {@linkcode ComponentHandle} of the placed door or window
871
592
  * @throws if the options are invalid, the catalog id is unknown, the host is
872
593
  * not a wall, loading fails, or the opening cannot be placed on the host
@@ -874,9 +595,8 @@ export declare abstract class PluginDesignCreateApi {
874
595
  * @examplePrompt Add a 1m wide door to this wall here
875
596
  * @examplePrompt Place a window with a 0.9m sill height on the selected wall
876
597
  *
877
- * @performance Single-opening creator — use it for one hosted opening. For MORE
878
- * THAN ONE, call `design.create.doors(items[])` / `design.create.windows(items[])`:
879
- * the same per-item fields, one host round-trip, ONE undo entry.
598
+ * @performance Single-opening creator — use it for one hosted opening. A plural
599
+ * API is intentionally unavailable until host placement can be atomic.
880
600
  *
881
601
  * # Example
882
602
  * ```ts
@@ -1398,7 +1118,7 @@ export type PluginDesignCreateStaircaseArgs = z.infer<typeof PluginDesignCreateS
1398
1118
  * | `catalogId` | `string` | Library id: team `_id` or general `fullName` |
1399
1119
  * | `position` | {@linkcode Vec3Handle} | Absolute world placement point |
1400
1120
  * | `label` | `string`? | Instance name (default auto `${name}Ins${n}`) |
1401
- * | `createNewSourceMesh` | `boolean`? | Legacy, kept for compatibility; the host records a catalog source exactly once and this flag cannot skip it |
1121
+ * | `createNewSourceMesh` | `boolean`? | Emit a source-mesh creation command (default `true`) |
1402
1122
  * | `angleInDegrees` | `number`? | Rotation about the vertical axis, in degrees (default unrotated) |
1403
1123
  */
1404
1124
  export declare const PluginDesignCreateFurnitureArgs: z.ZodObject<{
@@ -1418,8 +1138,7 @@ export type PluginDesignCreateFurnitureArgs = z.infer<typeof PluginDesignCreateF
1418
1138
  * | `hostWall` | {@linkcode ComponentHandle} | The wall to host the door |
1419
1139
  * | `position` | {@linkcode Vec3Handle} | World point projected onto the wall |
1420
1140
  * | `label` | `string`? | Instance name (optional) |
1421
- * | `facing` | {@linkcode Vec3Handle}? | World point on the side of the wall the door swings open to (default engine-chosen) |
1422
- * | `hinge` | {@linkcode Vec3Handle}? | World point near the jamb the door is hinged on (default the catalog item's authored side) |
1141
+ * | `facing` | {@linkcode Vec3Handle}? | World point on the side of the wall the door faces (default engine-chosen) |
1423
1142
  */
1424
1143
  export declare const PluginDesignCreateDoorArgs: z.ZodObject<{
1425
1144
  catalogId: z.ZodString;
@@ -1427,7 +1146,6 @@ export declare const PluginDesignCreateDoorArgs: z.ZodObject<{
1427
1146
  position: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"vec3">, string>>;
1428
1147
  label: z.ZodOptional<z.ZodString>;
1429
1148
  facing: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"vec3">, string>>>;
1430
- hinge: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"vec3">, string>>>;
1431
1149
  }, z.core.$strip>;
1432
1150
  export type PluginDesignCreateDoorArgs = z.infer<typeof PluginDesignCreateDoorArgs>;
1433
1151
  /**
@@ -1439,8 +1157,7 @@ export type PluginDesignCreateDoorArgs = z.infer<typeof PluginDesignCreateDoorAr
1439
1157
  * | `hostWall` | {@linkcode ComponentHandle} | The wall to host the window |
1440
1158
  * | `position` | {@linkcode Vec3Handle} | World point projected onto the wall |
1441
1159
  * | `label` | `string`? | Instance name (optional) |
1442
- * | `facing` | {@linkcode Vec3Handle}? | World point on the side of the wall the window opens to (default engine-chosen) |
1443
- * | `hinge` | {@linkcode Vec3Handle}? | World point near the jamb the window is hinged on (default the catalog item's authored side) |
1160
+ * | `facing` | {@linkcode Vec3Handle}? | World point on the side of the wall the window faces (default engine-chosen) |
1444
1161
  */
1445
1162
  export declare const PluginDesignCreateWindowArgs: z.ZodObject<{
1446
1163
  catalogId: z.ZodString;
@@ -1448,7 +1165,6 @@ export declare const PluginDesignCreateWindowArgs: z.ZodObject<{
1448
1165
  position: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"vec3">, string>>;
1449
1166
  label: z.ZodOptional<z.ZodString>;
1450
1167
  facing: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"vec3">, string>>>;
1451
- hinge: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"vec3">, string>>>;
1452
1168
  }, z.core.$strip>;
1453
1169
  export type PluginDesignCreateWindowArgs = z.infer<typeof PluginDesignCreateWindowArgs>;
1454
1170
  /**
@@ -1462,7 +1178,6 @@ export declare const PluginDesignCreateOpeningOptions: z.ZodDiscriminatedUnion<[
1462
1178
  hostWall: z.ZodPipe<z.ZodString, z.ZodTransform<ComponentHandle, string>>;
1463
1179
  position: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"vec3">, string>>;
1464
1180
  facing: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"vec3">, string>>>;
1465
- hinge: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"vec3">, string>>>;
1466
1181
  label: z.ZodOptional<z.ZodString>;
1467
1182
  width: z.ZodOptional<z.ZodNumber>;
1468
1183
  height: z.ZodOptional<z.ZodNumber>;
@@ -1473,7 +1188,6 @@ export declare const PluginDesignCreateOpeningOptions: z.ZodDiscriminatedUnion<[
1473
1188
  hostWall: z.ZodPipe<z.ZodString, z.ZodTransform<ComponentHandle, string>>;
1474
1189
  position: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"vec3">, string>>;
1475
1190
  facing: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"vec3">, string>>>;
1476
- hinge: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"vec3">, string>>>;
1477
1191
  label: z.ZodOptional<z.ZodString>;
1478
1192
  width: z.ZodOptional<z.ZodNumber>;
1479
1193
  height: z.ZodOptional<z.ZodNumber>;
@@ -1634,6 +1348,4 @@ export declare const PluginCreateSpaceItem: z.ZodObject<{
1634
1348
  storey: z.ZodOptional<z.ZodNumber>;
1635
1349
  }, z.core.$strip>;
1636
1350
  export type PluginCreateSpaceItem = z.infer<typeof PluginCreateSpaceItem>;
1637
- export * from "./opening-fields";
1638
- export * from "./bulk-items";
1639
1351
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/design/create/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/design/create/index.ts"],"names":[],"mappings":"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"}
@@ -36,10 +36,6 @@ export declare abstract class PluginDesignDeleteApi {
36
36
  * children are removed and linked-list neighbours are fixed up — not caller-tunable
37
37
  * in v1. Undoable — commits as a **single** undo entry.
38
38
  *
39
- * Dimension lines anchored to a deleted entity are removed with it, in the same undo
40
- * entry, exactly as the editor's Delete key does — see `design.dimensions`. They are
41
- * NOT listed in `affected`, which reports component handles only.
42
- *
43
39
  * @param components - Entities to delete. Unknown/forged handles reject the whole call (fail-fast).
44
40
  * @returns The entities that were deleted, as {@linkcode ComponentHandle}`[]`
45
41
  * (echoed host-side from the resolved+deleted set — the engine returns no ids).
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/design/delete/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAElD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,8BAA8B;;iBAEzC,CAAA;AACF,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAA;AAE3F;;;;;;;;;GASG;AACH,8BAAsB,qBAAqB;;IAGzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;aACa,QAAQ,CACtB,UAAU,EAAE,eAAe,EAAE,GAC5B,eAAe,CAAC,wBAAwB,CAAC;CAC7C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/design/delete/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAElD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,8BAA8B;;iBAEzC,CAAA;AACF,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAA;AAE3F;;;;;;;;;GASG;AACH,8BAAsB,qBAAqB;;IAGzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;aACa,QAAQ,CACtB,UAAU,EAAE,eAAe,EAAE,GAC5B,eAAe,CAAC,wBAAwB,CAAC;CAC7C"}
@@ -7,11 +7,9 @@ import { PluginDesignChangeResult } from "../lock";
7
7
  * `design.create.door`; generic reads (`listDoors`/`getHost`/`getProperties`) live at
8
8
  * `design.query.*`. Door targets are {@linkcode ComponentHandle}s.
9
9
  *
10
- * `getSwingDirection` is a DERIVED read (no persisted field) — computed from the placed
11
- * mesh's orientation: stand on the side the door swings open to, facing it; `'left'`
12
- * when the hinged jamb is on your left. `mirror` reflects the door about one of its own
13
- * axes (undoable, one command): `'x'` flips the swing side, `'z'` swaps the hinged jamb;
14
- * `setType` is intentionally absent (the engine has no in-place re-type —
10
+ * `getSwingDirection` is a DERIVED read (no persisted field) — computed from the door
11
+ * mesh reflection state. `mirror` reflects the door across an axis (undoable, one
12
+ * command); `setType` is intentionally absent (the engine has no in-place re-type —
15
13
  * it would require delete+recreate).
16
14
  *
17
15
  * The **catalog** reads (`listCatalogGroups`/`listCatalog`/`getCatalogItem`/`exists`)
@@ -146,11 +144,9 @@ export declare abstract class PluginDesignDoorsApi {
146
144
  */
147
145
  abstract getSupportFloor(door: ComponentHandle): PluginApiReturn<ComponentHandle | null>;
148
146
  /**
149
- * Get a door's swing (hinge) handedness. Stand on the side the door swings
150
- * open to, facing the door: `'left'` when the hinged jamb is on your left,
151
- * `'right'` when it is on your right. Derived from the placed mesh's
152
- * orientation (the same reflection `mirror` and the `hinge` placement option
153
- * apply), not a persisted field.
147
+ * Get a door's swing (hinge) handedness — whether it opens as a left-hand or
148
+ * right-hand door. Derived from the door mesh's reflection state, not a
149
+ * persisted field.
154
150
  *
155
151
  * @param door The door to query
156
152
  * @returns `'left'` / `'right'`, or `null` if indeterminate
@@ -169,13 +165,11 @@ export declare abstract class PluginDesignDoorsApi {
169
165
  */
170
166
  abstract getSwingDirection(door: ComponentHandle): PluginApiReturn<"left" | "right" | null>;
171
167
  /**
172
- * Mirror a door about its own axes. `'x'` (default) flips the swing side —
173
- * the door opens to the other side of the wall; `'z'` swaps the hinged jamb
174
- * (left-hand ↔ right-hand, same swing side); `'y'` turns it upside down.
175
- * Undoable as a single command.
168
+ * Mirror a door across an axis, flipping its swing so it opens from the
169
+ * other side. Undoable as a single command.
176
170
  *
177
171
  * @param door The door to mirror
178
- * @param axis Reflection axis (optional; default `'x'` — the swing-flip axis; `'z'` — the hinge-jamb axis)
172
+ * @param axis Reflection axis (optional; default `'x'` — the swing-flip axis)
179
173
  * @returns The affected door(s)
180
174
  *
181
175
  * @examplePrompt Flip this door's swing
@@ -186,11 +180,10 @@ export declare abstract class PluginDesignDoorsApi {
186
180
  *
187
181
  * # Example
188
182
  * ```ts
189
- * // Flip the selected door's swing side — axis defaults to "x"
183
+ * // Flip the selected door's swing — axis defaults to "x" (the swing-flip
184
+ * // axis); pass "y" or "z" to reflect across a different axis
190
185
  * const [door] = await snaptrude.design.query.listDoors({ isSelected: true })
191
186
  * const { affected } = await snaptrude.design.doors.mirror(door)
192
- * // …or swap the hinged jamb instead (keeps the swing side)
193
- * await snaptrude.design.doors.mirror(door, "z")
194
187
  * ```
195
188
  */
196
189
  abstract mirror(door: ComponentHandle, axis?: PluginMirrorAxis): PluginApiReturn<PluginDesignChangeResult>;
@@ -341,7 +334,7 @@ export declare const PluginDoorDimensions: z.ZodObject<{
341
334
  thickness: z.ZodNumber;
342
335
  }, z.core.$strip>;
343
336
  export type PluginDoorDimensions = z.infer<typeof PluginDoorDimensions>;
344
- /** Mirror axis — tokens mirror the engine `FlipDirection` verbatim: `'x'` flips the swing side, `'z'` swaps the hinged jamb, `'y'` turns the door upside down. */
337
+ /** Mirror axis — tokens mirror the engine `FlipDirection` verbatim (§6.1). */
345
338
  export declare const PluginMirrorAxis: z.ZodEnum<{
346
339
  x: "x";
347
340
  y: "y";
@@ -354,7 +347,7 @@ export type PluginMirrorAxis = z.infer<typeof PluginMirrorAxis>;
354
347
  * | Property | Type | Description |
355
348
  * |---|---|---|
356
349
  * | `door` | {@linkcode ComponentHandle} | The door to mirror |
357
- * | `axis` | {@linkcode PluginMirrorAxis} | Reflection axis (optional; default `'x'` — the swing-flip axis; `'z'` — the hinge-jamb axis) |
350
+ * | `axis` | {@linkcode PluginMirrorAxis} | Reflection axis (optional; default `'x'` — the swing-flip axis) |
358
351
  */
359
352
  export declare const PluginDesignDoorMirrorArgs: z.ZodObject<{
360
353
  door: z.ZodPipe<z.ZodString, z.ZodTransform<ComponentHandle, string>>;