@snaptrude/plugin-core 0.9.16 → 0.9.18-networks-20261016.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +231 -231
- package/CHANGELOG.md +408 -402
- package/CLAUDE.md +11 -11
- package/dist/api/analysis/daylight.d.ts +5 -5
- package/dist/api/analysis/solar.d.ts +2 -2
- package/dist/api/core/camera/index.d.ts +29 -0
- package/dist/api/core/camera/index.d.ts.map +1 -1
- package/dist/api/core/geom/create/index.d.ts +7 -1
- package/dist/api/core/geom/create/index.d.ts.map +1 -1
- package/dist/api/core/geom/update/contour.d.ts +8 -2
- package/dist/api/core/geom/update/contour.d.ts.map +1 -1
- package/dist/api/core/zoom/index.d.ts +13 -0
- package/dist/api/core/zoom/index.d.ts.map +1 -1
- package/dist/api/design/bim.d.ts +209 -0
- package/dist/api/design/bim.d.ts.map +1 -0
- package/dist/api/design/boolean/index.d.ts +2 -0
- package/dist/api/design/boolean/index.d.ts.map +1 -1
- package/dist/api/design/catalog.d.ts +320 -0
- package/dist/api/design/catalog.d.ts.map +1 -0
- package/dist/api/design/create/bulk-items.d.ts +65 -25
- package/dist/api/design/create/bulk-items.d.ts.map +1 -1
- package/dist/api/design/create/index.d.ts +272 -99
- package/dist/api/design/create/index.d.ts.map +1 -1
- package/dist/api/design/create/opening-fields.d.ts +13 -12
- package/dist/api/design/create/opening-fields.d.ts.map +1 -1
- package/dist/api/design/delete/index.d.ts +1 -0
- package/dist/api/design/delete/index.d.ts.map +1 -1
- package/dist/api/design/doors/index.d.ts +18 -24
- package/dist/api/design/doors/index.d.ts.map +1 -1
- package/dist/api/design/family.d.ts +797 -27
- package/dist/api/design/family.d.ts.map +1 -1
- package/dist/api/design/index.d.ts +16 -0
- package/dist/api/design/index.d.ts.map +1 -1
- package/dist/api/design/networks.d.ts +1763 -0
- package/dist/api/design/networks.d.ts.map +1 -0
- package/dist/api/design/query/index.d.ts +42 -32
- package/dist/api/design/query/index.d.ts.map +1 -1
- package/dist/api/design/selection/index.d.ts +10 -10
- package/dist/api/design/types/index.d.ts +40 -24
- package/dist/api/design/types/index.d.ts.map +1 -1
- package/dist/api/design/update/index.d.ts +43 -3
- package/dist/api/design/update/index.d.ts.map +1 -1
- package/dist/api/design/windows/index.d.ts +8 -8
- package/dist/api/design/windows/index.d.ts.map +1 -1
- package/dist/api/presentation/aiInspiration.d.ts +10 -10
- package/dist/api/presentation/annotate.d.ts +38 -22
- package/dist/api/presentation/annotate.d.ts.map +1 -1
- package/dist/api/presentation/drawingContract.d.ts +32 -0
- package/dist/api/presentation/drawingContract.d.ts.map +1 -0
- package/dist/api/presentation/drawings.d.ts +3523 -0
- package/dist/api/presentation/drawings.d.ts.map +1 -0
- package/dist/api/presentation/export.d.ts +23 -5
- package/dist/api/presentation/export.d.ts.map +1 -1
- package/dist/api/presentation/index.d.ts +41 -12
- package/dist/api/presentation/index.d.ts.map +1 -1
- package/dist/api/presentation/placedViews.d.ts +106 -6
- package/dist/api/presentation/placedViews.d.ts.map +1 -1
- package/dist/api/presentation/sections.d.ts +461 -0
- package/dist/api/presentation/sections.d.ts.map +1 -0
- package/dist/api/presentation/shapes.d.ts +2 -2
- package/dist/api/presentation/sheets.d.ts +175 -19
- package/dist/api/presentation/sheets.d.ts.map +1 -1
- package/dist/api/presentation/viewPresets.d.ts +222 -0
- package/dist/api/presentation/viewPresets.d.ts.map +1 -0
- package/dist/api/presentation/views.d.ts +103 -5
- package/dist/api/presentation/views.d.ts.map +1 -1
- package/dist/api/presentation/walkthroughs.d.ts +6 -6
- package/dist/errors/codes.d.ts +3 -1
- package/dist/errors/codes.d.ts.map +1 -1
- package/dist/index.cjs +3788 -2328
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +3650 -2328
- package/dist/index.js.map +1 -1
- package/package.json +42 -42
- package/scripts/check-dist-fresh.mjs +22 -22
- package/scripts/generate-manifest.mjs +243 -238
- package/scripts/generate-manifest.test.mjs +303 -303
- package/src/api/analysis/daylight.ts +470 -470
- package/src/api/analysis/heatmaps.ts +683 -683
- package/src/api/analysis/illuminance.ts +155 -155
- package/src/api/analysis/index.ts +61 -61
- package/src/api/analysis/shadows.ts +183 -183
- package/src/api/analysis/solar.ts +237 -237
- package/src/api/analysis/sunlightHours.ts +211 -211
- package/src/api/analysis/sunpath.ts +83 -83
- package/src/api/analysis/weather.ts +179 -179
- package/src/api/core/buildings.ts +485 -485
- package/src/api/core/camera/index.ts +696 -667
- package/src/api/core/comment/index.ts +376 -376
- package/src/api/core/geom/create/index.ts +2139 -2133
- package/src/api/core/geom/delete/index.ts +84 -84
- package/src/api/core/geom/index.ts +35 -35
- package/src/api/core/geom/query/arc.ts +169 -169
- package/src/api/core/geom/query/brep.ts +621 -621
- package/src/api/core/geom/query/circle.ts +404 -404
- package/src/api/core/geom/query/contour.ts +540 -540
- package/src/api/core/geom/query/curve.ts +1102 -1102
- package/src/api/core/geom/query/edge.ts +130 -130
- package/src/api/core/geom/query/face.ts +508 -508
- package/src/api/core/geom/query/halfedge.ts +210 -210
- package/src/api/core/geom/query/index.ts +63 -63
- package/src/api/core/geom/query/profile.ts +473 -473
- package/src/api/core/geom/query/vertex.ts +205 -205
- package/src/api/core/geom/update/contour.ts +323 -317
- package/src/api/core/geom/update/curve.ts +209 -209
- package/src/api/core/geom/update/index.ts +29 -29
- package/src/api/core/geom/update/profile.ts +379 -379
- package/src/api/core/groups.ts +521 -521
- package/src/api/core/handles/index.ts +234 -234
- package/src/api/core/history/index.ts +84 -84
- package/src/api/core/index.ts +99 -99
- package/src/api/core/io/export/index.ts +126 -126
- package/src/api/core/io/import/index.ts +504 -504
- package/src/api/core/io/index.ts +42 -42
- package/src/api/core/io/job/index.ts +140 -140
- package/src/api/core/io/query/index.ts +71 -71
- package/src/api/core/io/terrain/index.ts +360 -360
- package/src/api/core/io/underlay/index.ts +705 -705
- package/src/api/core/layers.ts +540 -540
- package/src/api/core/math/index.ts +20 -20
- package/src/api/core/math/quat.ts +172 -172
- package/src/api/core/math/vec3.ts +179 -179
- package/src/api/core/mode/index.ts +108 -108
- package/src/api/core/project/index.ts +479 -479
- package/src/api/core/proposals/index.ts +570 -570
- package/src/api/core/storeys/index.ts +308 -308
- package/src/api/core/storeys/layers.ts +339 -339
- package/src/api/core/tags.ts +911 -911
- package/src/api/core/units/index.ts +164 -164
- package/src/api/core/user.ts +46 -46
- package/src/api/core/zoom/index.ts +64 -51
- package/src/api/design/bim.ts +121 -0
- package/src/api/design/boolean/index.ts +181 -179
- package/src/api/design/catalog.ts +203 -0
- package/src/api/design/create/bulk-items.ts +294 -254
- package/src/api/design/create/grids.ts +137 -137
- package/src/api/design/create/index.ts +2148 -1980
- package/src/api/design/create/opening-fields.ts +40 -37
- package/src/api/design/delete/index.ts +75 -74
- package/src/api/design/dimensions.ts +453 -453
- package/src/api/design/doors/index.ts +516 -500
- package/src/api/design/edit/index.ts +54 -54
- package/src/api/design/erase/index.ts +151 -151
- package/src/api/design/family.ts +1334 -704
- package/src/api/design/furniture/index.ts +319 -319
- package/src/api/design/grids.ts +237 -237
- package/src/api/design/index.ts +304 -274
- package/src/api/design/lock.ts +69 -69
- package/src/api/design/materials/index.ts +608 -608
- package/src/api/design/networks.ts +667 -0
- package/src/api/design/query/geometry/index.ts +319 -319
- package/src/api/design/query/grids.ts +197 -197
- package/src/api/design/query/index.ts +1236 -1226
- package/src/api/design/query/referenceLines.ts +52 -52
- package/src/api/design/query/spaces.ts +275 -275
- package/src/api/design/selection/index.ts +273 -273
- package/src/api/design/shared.ts +40 -40
- package/src/api/design/transform/index.ts +254 -254
- package/src/api/design/types/index.ts +163 -156
- package/src/api/design/update/index.ts +1024 -983
- package/src/api/design/visibility.ts +143 -143
- package/src/api/design/windows/index.ts +351 -333
- package/src/api/entity/buildableEnvelope.ts +322 -322
- package/src/api/entity/index.ts +30 -30
- package/src/api/entity/referenceLine.ts +235 -235
- package/src/api/entity/space.ts +612 -612
- package/src/api/entity/story.ts +517 -517
- package/src/api/index.ts +47 -47
- package/src/api/presentation/aiInspiration.ts +1116 -1116
- package/src/api/presentation/annotate.ts +417 -385
- package/src/api/presentation/camera.ts +289 -289
- package/src/api/presentation/diagrams.ts +194 -194
- package/src/api/presentation/drawingContract.ts +70 -0
- package/src/api/presentation/drawings.ts +1179 -0
- package/src/api/presentation/export.ts +134 -108
- package/src/api/presentation/import.ts +159 -159
- package/src/api/presentation/index.ts +160 -126
- package/src/api/presentation/placedViews.ts +1211 -1120
- package/src/api/presentation/sections.ts +420 -0
- package/src/api/presentation/shapes.ts +274 -274
- package/src/api/presentation/sheets.ts +746 -585
- package/src/api/presentation/slideshow.ts +134 -134
- package/src/api/presentation/tables.ts +84 -84
- package/src/api/presentation/viewPresets.ts +241 -0
- package/src/api/presentation/views.ts +713 -673
- package/src/api/presentation/walkthroughs.ts +1201 -1201
- package/src/api/program/adjacency.ts +164 -164
- package/src/api/program/areas.ts +408 -408
- package/src/api/program/classification.ts +138 -138
- package/src/api/program/cores.ts +83 -83
- package/src/api/program/departments.ts +517 -517
- package/src/api/program/index.ts +73 -73
- package/src/api/program/labels.ts +332 -332
- package/src/api/program/layout.ts +422 -422
- package/src/api/program/metadata.ts +364 -364
- package/src/api/program/metrics.ts +120 -120
- package/src/api/program/site.ts +748 -748
- package/src/api/program/spreadsheet.ts +2698 -2698
- package/src/api/workspace/index.ts +612 -612
- package/src/errors/codes.ts +143 -136
- package/src/errors/envelope.ts +75 -75
- package/src/errors/index.ts +21 -21
- package/src/errors/plugin-error.ts +134 -134
- package/src/handles.ts +297 -297
- package/src/host-utils.ts +67 -67
- package/src/index.ts +7 -7
- package/src/massParameters.ops.ts +246 -246
- package/src/massParameters.ts +427 -427
- package/src/types.ts +16 -16
- package/test/drawingContract.test.mjs +288 -0
- package/test/errors.test.mjs +185 -184
- package/test/massParameters.test.mjs +952 -952
- package/tsconfig.json +22 -22
- package/tsup.config.ts +12 -12
- package/api-manifest.json +0 -9618
|
@@ -1,37 +1,40 @@
|
|
|
1
|
-
import * as z from "zod"
|
|
2
|
-
import { ComponentHandle, Vec3Handle } from "../../../handles"
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* The shared field bag every hosted opening (door / window) carries — used by
|
|
6
|
-
* {@linkcode PluginDesignCreateOpeningOptions} and by the bulk item schemas in
|
|
7
|
-
* `bulk-items.ts`, so singular and plural openings validate identically.
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* |
|
|
18
|
-
*
|
|
19
|
-
* | `
|
|
20
|
-
* | `
|
|
21
|
-
* | `
|
|
22
|
-
* | `
|
|
23
|
-
* | `
|
|
24
|
-
* | `
|
|
25
|
-
* | `
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
1
|
+
import * as z from "zod"
|
|
2
|
+
import { ComponentHandle, Vec3Handle } from "../../../handles"
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* The shared field bag every hosted opening (door / window) carries — used by
|
|
6
|
+
* {@linkcode PluginDesignCreateOpeningOptions} and by the bulk item schemas in
|
|
7
|
+
* `bulk-items.ts`, so singular and plural openings validate identically.
|
|
8
|
+
*
|
|
9
|
+
* PC-only placement. The family recipe owns dimensions and geometry. Overrides
|
|
10
|
+
* are applied before fit checks and cutting, never by scaling generated meshes.
|
|
11
|
+
* `facing` selects the host frame's +Z side. `hinge` selects the declared
|
|
12
|
+
* `hand` parameter (left/right); families without that control reject it.
|
|
13
|
+
*
|
|
14
|
+
* | Property | Type | Description |
|
|
15
|
+
* |---|---|---|
|
|
16
|
+
* | `familyId` | `string` | Hosted parametric definition ID, not a mesh catalog ID |
|
|
17
|
+
* | `version` | `number`? | Exact family version; newest known by default |
|
|
18
|
+
* | `values` | `Record<string, number \| string>`? | Authored instance parameters; numeric lengths use Snaptrude units |
|
|
19
|
+
* | `hostWall` | {@linkcode ComponentHandle} | The wall to host the opening |
|
|
20
|
+
* | `position` | {@linkcode Vec3Handle} | World point projected onto the wall |
|
|
21
|
+
* | `facing` | {@linkcode Vec3Handle}? | World point on the side of the wall the opening swings open to (default engine-chosen) |
|
|
22
|
+
* | `hinge` | {@linkcode Vec3Handle}? | World point near the hinged jamb; requires the recipe's hand parameter |
|
|
23
|
+
* | `label` | `string`? | Instance name (optional) |
|
|
24
|
+
* | `width` | `number`? | Sets the declared width parameter, not the opening's evaluated envelope |
|
|
25
|
+
* | `height` | `number`? | Sets the declared height parameter |
|
|
26
|
+
*/
|
|
27
|
+
export const PluginOpeningBaseOptions = {
|
|
28
|
+
familyId: z.string().min(1),
|
|
29
|
+
version: z.number().int().positive().optional(),
|
|
30
|
+
values: z
|
|
31
|
+
.record(z.string(), z.union([z.number().finite(), z.string()]))
|
|
32
|
+
.optional(),
|
|
33
|
+
hostWall: ComponentHandle,
|
|
34
|
+
position: Vec3Handle,
|
|
35
|
+
facing: Vec3Handle.optional(),
|
|
36
|
+
hinge: Vec3Handle.optional(),
|
|
37
|
+
label: z.string().optional(),
|
|
38
|
+
width: z.number().finite().positive().optional(),
|
|
39
|
+
height: z.number().finite().positive().optional(),
|
|
40
|
+
}
|
|
@@ -1,74 +1,75 @@
|
|
|
1
|
-
import * as z from "zod"
|
|
2
|
-
import { PluginApiReturn } from "../../../types"
|
|
3
|
-
import { ComponentHandle } from "../../../handles"
|
|
4
|
-
import { PluginDesignChangeResult } from "../lock"
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Arguments for {@linkcode PluginDesignDeleteApi.entities}.
|
|
8
|
-
*
|
|
9
|
-
* | Property | Type | Description |
|
|
10
|
-
* |---|---|---|
|
|
11
|
-
* | `components` | {@linkcode ComponentHandle}`[]` | Entities to delete. Unknown/forged handles reject the whole call (fail-fast). |
|
|
12
|
-
*
|
|
13
|
-
* `.min(1)` is deliberately stricter than the shipped `PluginDesignLockArgs`
|
|
14
|
-
* (which allows an empty array) — an empty delete is a caller error, not a no-op.
|
|
15
|
-
*
|
|
16
|
-
* TRANSPORT: positional args — validated host-side as `{ components }`.
|
|
17
|
-
*/
|
|
18
|
-
export const PluginDesignDeleteEntitiesArgs = z.object({
|
|
19
|
-
components: z.array(ComponentHandle).min(1),
|
|
20
|
-
})
|
|
21
|
-
export type PluginDesignDeleteEntitiesArgs = z.infer<typeof PluginDesignDeleteEntitiesArgs>
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* `snaptrude.design.delete.*` — **hard removal** of scene BIM entities.
|
|
25
|
-
*
|
|
26
|
-
* This is hard entity delete — distinct from `design.erase.edge` (a plan-level
|
|
27
|
-
* adjacency-edge topology op) and `design.boolean.subtract` (a CSG geometry
|
|
28
|
-
* delete). The constitution forbids `erase`/`clear`/`remove` as synonyms for
|
|
29
|
-
* `delete`; these are three separate operations.
|
|
30
|
-
*
|
|
31
|
-
* TRANSPORT: positional args per method.
|
|
32
|
-
*/
|
|
33
|
-
export abstract class PluginDesignDeleteApi {
|
|
34
|
-
constructor() {}
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Delete one or more entities. Generic hard delete (backed by the same batched,
|
|
38
|
-
* undoable path as `entity.space.delete`). Cascade is opinionated by the engine:
|
|
39
|
-
* children are removed and linked-list neighbours are fixed up — not caller-tunable
|
|
40
|
-
* in v1. Undoable — commits as a **single** undo entry.
|
|
41
|
-
*
|
|
42
|
-
* Dimension lines anchored to a deleted entity are removed with it, in the same undo
|
|
43
|
-
* entry, exactly as the editor's Delete key does — see `design.dimensions`. They are
|
|
44
|
-
* NOT listed in `affected`, which reports component handles only.
|
|
45
|
-
*
|
|
46
|
-
* @param components - Entities to delete. Unknown/forged handles reject the whole call (fail-fast).
|
|
47
|
-
* @returns The entities that were deleted, as {@linkcode ComponentHandle}`[]`
|
|
48
|
-
* (echoed host-side from the resolved+deleted set — the engine returns no ids).
|
|
49
|
-
* Deleted handles are **stale** afterwards: re-resolving one throws `HANDLE_INVALID`.
|
|
50
|
-
* @throws If any supplied handle is unknown/forged (`HANDLE_INVALID`) — the whole
|
|
51
|
-
* call rejects before anything is deleted (all-or-nothing resolution).
|
|
52
|
-
*
|
|
53
|
-
* @examplePrompt Delete the selected objects
|
|
54
|
-
* @examplePrompt Remove these walls from the model
|
|
55
|
-
* @examplePrompt Get rid of this mass entirely
|
|
56
|
-
* @examplePrompt Delete all the furniture I picked
|
|
57
|
-
* @examplePrompt Remove the door and window I just created
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
* }
|
|
69
|
-
*
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
1
|
+
import * as z from "zod"
|
|
2
|
+
import { PluginApiReturn } from "../../../types"
|
|
3
|
+
import { ComponentHandle } from "../../../handles"
|
|
4
|
+
import { PluginDesignChangeResult } from "../lock"
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Arguments for {@linkcode PluginDesignDeleteApi.entities}.
|
|
8
|
+
*
|
|
9
|
+
* | Property | Type | Description |
|
|
10
|
+
* |---|---|---|
|
|
11
|
+
* | `components` | {@linkcode ComponentHandle}`[]` | Entities to delete. Unknown/forged handles reject the whole call (fail-fast). |
|
|
12
|
+
*
|
|
13
|
+
* `.min(1)` is deliberately stricter than the shipped `PluginDesignLockArgs`
|
|
14
|
+
* (which allows an empty array) — an empty delete is a caller error, not a no-op.
|
|
15
|
+
*
|
|
16
|
+
* TRANSPORT: positional args — validated host-side as `{ components }`.
|
|
17
|
+
*/
|
|
18
|
+
export const PluginDesignDeleteEntitiesArgs = z.object({
|
|
19
|
+
components: z.array(ComponentHandle).min(1),
|
|
20
|
+
})
|
|
21
|
+
export type PluginDesignDeleteEntitiesArgs = z.infer<typeof PluginDesignDeleteEntitiesArgs>
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* `snaptrude.design.delete.*` — **hard removal** of scene BIM entities.
|
|
25
|
+
*
|
|
26
|
+
* This is hard entity delete — distinct from `design.erase.edge` (a plan-level
|
|
27
|
+
* adjacency-edge topology op) and `design.boolean.subtract` (a CSG geometry
|
|
28
|
+
* delete). The constitution forbids `erase`/`clear`/`remove` as synonyms for
|
|
29
|
+
* `delete`; these are three separate operations.
|
|
30
|
+
*
|
|
31
|
+
* TRANSPORT: positional args per method.
|
|
32
|
+
*/
|
|
33
|
+
export abstract class PluginDesignDeleteApi {
|
|
34
|
+
constructor() {}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Delete one or more entities. Generic hard delete (backed by the same batched,
|
|
38
|
+
* undoable path as `entity.space.delete`). Cascade is opinionated by the engine:
|
|
39
|
+
* children are removed and linked-list neighbours are fixed up — not caller-tunable
|
|
40
|
+
* in v1. Undoable — commits as a **single** undo entry.
|
|
41
|
+
*
|
|
42
|
+
* Dimension lines anchored to a deleted entity are removed with it, in the same undo
|
|
43
|
+
* entry, exactly as the editor's Delete key does — see `design.dimensions`. They are
|
|
44
|
+
* NOT listed in `affected`, which reports component handles only.
|
|
45
|
+
*
|
|
46
|
+
* @param components - Entities to delete. Unknown/forged handles reject the whole call (fail-fast).
|
|
47
|
+
* @returns The entities that were deleted, as {@linkcode ComponentHandle}`[]`
|
|
48
|
+
* (echoed host-side from the resolved+deleted set — the engine returns no ids).
|
|
49
|
+
* Deleted handles are **stale** afterwards: re-resolving one throws `HANDLE_INVALID`.
|
|
50
|
+
* @throws If any supplied handle is unknown/forged (`HANDLE_INVALID`) — the whole
|
|
51
|
+
* call rejects before anything is deleted (all-or-nothing resolution).
|
|
52
|
+
*
|
|
53
|
+
* @examplePrompt Delete the selected objects
|
|
54
|
+
* @examplePrompt Remove these walls from the model
|
|
55
|
+
* @examplePrompt Get rid of this mass entirely
|
|
56
|
+
* @examplePrompt Delete all the furniture I picked
|
|
57
|
+
* @examplePrompt Remove the door and window I just created
|
|
58
|
+
* @examplePrompt Remove the void I cut in this slab
|
|
59
|
+
*
|
|
60
|
+
* @performance Array delete — pass every target in one call (one host round-trip). There is
|
|
61
|
+
* no per-item delete; collect the whole set and never loop this per entity.
|
|
62
|
+
*
|
|
63
|
+
* # Example
|
|
64
|
+
* ```ts
|
|
65
|
+
* // Hard-delete every furniture item on storey 2 (a single undo entry)
|
|
66
|
+
* const furniture = await snaptrude.design.query.listFurniture({ storeys: [2] })
|
|
67
|
+
* if (furniture.length > 0) {
|
|
68
|
+
* const { affected } = await snaptrude.design.delete.entities(furniture)
|
|
69
|
+
* }
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
public abstract entities(
|
|
73
|
+
components: ComponentHandle[],
|
|
74
|
+
): PluginApiReturn<PluginDesignChangeResult>
|
|
75
|
+
}
|