@snaptrude/plugin-core 0.9.16-networks-20261012.1 → 0.9.17
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/CHANGELOG.md +6 -0
- package/api-manifest.json +9711 -0
- 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 +0 -29
- package/dist/api/core/camera/index.d.ts.map +1 -1
- package/dist/api/core/zoom/index.d.ts +0 -13
- package/dist/api/core/zoom/index.d.ts.map +1 -1
- package/dist/api/design/create/bulk-items.d.ts +21 -40
- package/dist/api/design/create/bulk-items.d.ts.map +1 -1
- package/dist/api/design/create/index.d.ts +97 -120
- package/dist/api/design/create/index.d.ts.map +1 -1
- package/dist/api/design/create/opening-fields.d.ts +12 -13
- package/dist/api/design/create/opening-fields.d.ts.map +1 -1
- package/dist/api/design/doors/index.d.ts +24 -18
- package/dist/api/design/doors/index.d.ts.map +1 -1
- package/dist/api/design/family.d.ts +27 -797
- package/dist/api/design/family.d.ts.map +1 -1
- package/dist/api/design/index.d.ts +0 -16
- package/dist/api/design/index.d.ts.map +1 -1
- package/dist/api/design/query/index.d.ts +30 -30
- package/dist/api/design/selection/index.d.ts +10 -10
- package/dist/api/design/types/index.d.ts +24 -40
- package/dist/api/design/types/index.d.ts.map +1 -1
- package/dist/api/design/update/index.d.ts +3 -40
- 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 +22 -38
- package/dist/api/presentation/annotate.d.ts.map +1 -1
- package/dist/api/presentation/export.d.ts +5 -23
- package/dist/api/presentation/export.d.ts.map +1 -1
- package/dist/api/presentation/index.d.ts +21 -32
- package/dist/api/presentation/index.d.ts.map +1 -1
- package/dist/api/presentation/placedViews.d.ts +6 -106
- 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 +19 -175
- package/dist/api/presentation/sheets.d.ts.map +1 -1
- package/dist/api/presentation/views.d.ts +5 -103
- package/dist/api/presentation/views.d.ts.map +1 -1
- package/dist/api/presentation/walkthroughs.d.ts +6 -6
- package/dist/index.cjs +2434 -3619
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +2421 -3501
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/scripts/generate-manifest.mjs +0 -5
- package/src/api/core/camera/index.ts +0 -29
- package/src/api/core/zoom/index.ts +0 -13
- package/src/api/design/create/bulk-items.ts +16 -23
- package/src/api/design/create/index.ts +119 -129
- package/src/api/design/create/opening-fields.ts +12 -15
- package/src/api/design/doors/index.ts +42 -58
- package/src/api/design/family.ts +32 -662
- package/src/api/design/index.ts +4 -34
- package/src/api/design/types/index.ts +24 -31
- package/src/api/design/update/index.ts +3 -41
- package/src/api/design/windows/index.ts +22 -40
- package/src/api/presentation/annotate.ts +58 -90
- package/src/api/presentation/export.ts +6 -32
- package/src/api/presentation/index.ts +23 -39
- package/src/api/presentation/placedViews.ts +28 -119
- package/src/api/presentation/sections.ts +420 -0
- package/src/api/presentation/sheets.ts +20 -181
- package/src/api/presentation/views.ts +6 -46
- package/dist/api/design/bim.d.ts +0 -209
- package/dist/api/design/bim.d.ts.map +0 -1
- package/dist/api/design/catalog.d.ts +0 -320
- package/dist/api/design/catalog.d.ts.map +0 -1
- package/dist/api/design/networks.d.ts +0 -1703
- package/dist/api/design/networks.d.ts.map +0 -1
- package/dist/api/presentation/drawingContract.d.ts +0 -32
- package/dist/api/presentation/drawingContract.d.ts.map +0 -1
- package/dist/api/presentation/drawings.d.ts +0 -3523
- package/dist/api/presentation/drawings.d.ts.map +0 -1
- package/dist/api/presentation/viewPresets.d.ts +0 -222
- package/dist/api/presentation/viewPresets.d.ts.map +0 -1
- package/src/api/design/bim.ts +0 -121
- package/src/api/design/catalog.ts +0 -203
- package/src/api/design/networks.ts +0 -607
- package/src/api/presentation/drawingContract.ts +0 -70
- package/src/api/presentation/drawings.ts +0 -1179
- package/src/api/presentation/viewPresets.ts +0 -241
- package/test/drawingContract.test.mjs +0 -288
package/src/api/design/index.ts
CHANGED
|
@@ -18,14 +18,7 @@ import { PluginDesignDimensionsApi } from "./dimensions"
|
|
|
18
18
|
import { PluginDesignTypesApi } from "./types"
|
|
19
19
|
import { PluginDesignFamilyApi } from "./family"
|
|
20
20
|
import { PluginDesignGridsApi } from "./grids"
|
|
21
|
-
import { PluginDesignCatalogApi } from "./catalog"
|
|
22
|
-
import { PluginDesignBimApi } from "./bim"
|
|
23
21
|
import { PluginDesignChangeResult } from "./lock"
|
|
24
|
-
import {
|
|
25
|
-
PluginElectricalApi,
|
|
26
|
-
PluginPlumbingApi,
|
|
27
|
-
PluginMechanicalApi,
|
|
28
|
-
} from "./networks"
|
|
29
22
|
|
|
30
23
|
/**
|
|
31
24
|
* `snaptrude.design.*` — author, query & edit BIM geometry.
|
|
@@ -83,22 +76,10 @@ export abstract class PluginDesignApi {
|
|
|
83
76
|
public abstract types: PluginDesignTypesApi
|
|
84
77
|
/** Author parametric families from a JSON spec. See {@linkcode PluginDesignFamilyApi}. */
|
|
85
78
|
public abstract family: PluginDesignFamilyApi
|
|
86
|
-
/** Shared family and asset inventory, including supported placement and update paths. */
|
|
87
|
-
public abstract catalog: PluginDesignCatalogApi
|
|
88
|
-
|
|
89
|
-
/** Agent-driven Sketch-to-BIM with explicit per-edge constructions. */
|
|
90
|
-
public abstract bim: PluginDesignBimApi
|
|
91
79
|
|
|
92
80
|
/** Structural edits on a grid's line structure. See {@linkcode PluginDesignGridsApi}. */
|
|
93
81
|
public abstract grids: PluginDesignGridsApi
|
|
94
82
|
|
|
95
|
-
/** Persistent electrical equipment, routes and circuit graphs. */
|
|
96
|
-
public abstract electrical: PluginElectricalApi
|
|
97
|
-
/** Persistent plumbing equipment and directed pipe graphs. */
|
|
98
|
-
public abstract plumbing: PluginPlumbingApi
|
|
99
|
-
/** Persistent family-backed HVAC ducts, fittings and equipment. */
|
|
100
|
-
public abstract mechanical: PluginMechanicalApi
|
|
101
|
-
|
|
102
83
|
/**
|
|
103
84
|
* Lock entities so they cannot be edited. Undoable. Cascades to void/door/window
|
|
104
85
|
* children, stacked-wall companions, and terrain neighborhood; skips
|
|
@@ -119,9 +100,7 @@ export abstract class PluginDesignApi {
|
|
|
119
100
|
* // affected is post-cascade: hosted doors/windows are included
|
|
120
101
|
* ```
|
|
121
102
|
*/
|
|
122
|
-
public abstract lock(
|
|
123
|
-
components: ComponentHandle[],
|
|
124
|
-
): PluginApiReturn<PluginDesignChangeResult>
|
|
103
|
+
public abstract lock(components: ComponentHandle[]): PluginApiReturn<PluginDesignChangeResult>
|
|
125
104
|
|
|
126
105
|
/**
|
|
127
106
|
* Unlock previously locked entities so they can be edited again. Undoable.
|
|
@@ -141,9 +120,7 @@ export abstract class PluginDesignApi {
|
|
|
141
120
|
* const { affected } = await snaptrude.design.unlock(locked)
|
|
142
121
|
* ```
|
|
143
122
|
*/
|
|
144
|
-
public abstract unlock(
|
|
145
|
-
components: ComponentHandle[],
|
|
146
|
-
): PluginApiReturn<PluginDesignChangeResult>
|
|
123
|
+
public abstract unlock(components: ComponentHandle[]): PluginApiReturn<PluginDesignChangeResult>
|
|
147
124
|
|
|
148
125
|
/**
|
|
149
126
|
* Test whether an entity is locked (folds group + bucket lock unless `includeInherited: false`).
|
|
@@ -211,9 +188,7 @@ export abstract class PluginDesignApi {
|
|
|
211
188
|
* console.log("area-locked", affected.length, "spaces")
|
|
212
189
|
* ```
|
|
213
190
|
*/
|
|
214
|
-
public abstract lockArea(
|
|
215
|
-
spaces: ComponentHandle[],
|
|
216
|
-
): PluginApiReturn<PluginDesignChangeResult>
|
|
191
|
+
public abstract lockArea(spaces: ComponentHandle[]): PluginApiReturn<PluginDesignChangeResult>
|
|
217
192
|
|
|
218
193
|
/**
|
|
219
194
|
* Unlock the footprint area of previously area-locked spaces so their area can
|
|
@@ -234,9 +209,7 @@ export abstract class PluginDesignApi {
|
|
|
234
209
|
* const { affected } = await snaptrude.design.unlockArea(locked)
|
|
235
210
|
* ```
|
|
236
211
|
*/
|
|
237
|
-
public abstract unlockArea(
|
|
238
|
-
spaces: ComponentHandle[],
|
|
239
|
-
): PluginApiReturn<PluginDesignChangeResult>
|
|
212
|
+
public abstract unlockArea(spaces: ComponentHandle[]): PluginApiReturn<PluginDesignChangeResult>
|
|
240
213
|
|
|
241
214
|
/**
|
|
242
215
|
* Test whether a space's footprint area is locked. A read — never throws;
|
|
@@ -299,6 +272,3 @@ export * from "./dimensions"
|
|
|
299
272
|
export * from "./types"
|
|
300
273
|
export * from "./family"
|
|
301
274
|
export * from "./grids"
|
|
302
|
-
export * from "./networks"
|
|
303
|
-
export * from "./catalog"
|
|
304
|
-
export * from "./bim"
|
|
@@ -1,25 +1,23 @@
|
|
|
1
1
|
import * as z from "zod"
|
|
2
2
|
import { PluginApiReturn } from "../../../types"
|
|
3
3
|
|
|
4
|
-
/** An exact saved native wall family. Access is checked on every use; Draw selection is not registration. */
|
|
5
|
-
export const PluginNativeWallType = z.object({
|
|
6
|
-
id: z.string().min(1),
|
|
7
|
-
version: z.number().int().positive(),
|
|
8
|
-
})
|
|
9
|
-
export type PluginNativeWallType = z.infer<typeof PluginNativeWallType>
|
|
10
|
-
|
|
11
|
-
/** Legacy project type name/id, or an exact authorized native wall family pin. */
|
|
12
|
-
export const PluginWallType = z.union([z.string().trim().min(1), PluginNativeWallType])
|
|
13
|
-
export type PluginWallType = z.infer<typeof PluginWallType>
|
|
14
|
-
|
|
15
4
|
/**
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
5
|
+
* `snaptrude.design.types` — READ-ONLY reference over the project's building
|
|
6
|
+
* **type / assembly** system (the Project Properties layer stacks: External /
|
|
7
|
+
* Internal walls, slabs, floors, ceilings, roofs). A type bundles a labelled
|
|
8
|
+
* layer stack — each layer's role, thickness (engine units) and material — plus a
|
|
9
|
+
* summed total thickness. Both the built-in defaults and any team/user-added types
|
|
10
|
+
* are surfaced.
|
|
11
|
+
*
|
|
12
|
+
* Types are plain value records ({@linkcode PluginBuildingType}) — NOT scene
|
|
13
|
+
* entities/handles. A type's `id` is a stable `"<kind>:<name>"` token
|
|
14
|
+
* (e.g. `"wall:brickWithPlasterAndPaint"`) returned by
|
|
15
|
+
* {@linkcode PluginDesignTypesApi.list} and consumed by
|
|
16
|
+
* {@linkcode PluginDesignTypesApi.get}. Reads never throw — an unknown id yields
|
|
17
|
+
* `null`; a kind with no types yields `[]`.
|
|
18
|
+
*
|
|
19
|
+
* These are reads only: there is no engine seam to author a type from a plugin
|
|
20
|
+
* (types are created through the construction/project-properties UI).
|
|
23
21
|
*/
|
|
24
22
|
export abstract class PluginDesignTypesApi {
|
|
25
23
|
constructor() {}
|
|
@@ -48,10 +46,10 @@ export abstract class PluginDesignTypesApi {
|
|
|
48
46
|
): PluginApiReturn<PluginBuildingTypeSummary[]>
|
|
49
47
|
|
|
50
48
|
/**
|
|
51
|
-
* Get one building type by its
|
|
49
|
+
* Get one building type by its `"<kind>:<name>"` id — its labelled layer stack
|
|
52
50
|
* (each layer's role, thickness and material) plus the summed total thickness.
|
|
53
51
|
*
|
|
54
|
-
* @param typeId The
|
|
52
|
+
* @param typeId The type id from {@linkcode PluginDesignTypesApi.list} (e.g. `"wall:exposedConcrete"`)
|
|
55
53
|
* @returns The full type, or `null` if no type matches
|
|
56
54
|
*
|
|
57
55
|
* @examplePrompt What layers make up this wall type?
|
|
@@ -62,11 +60,11 @@ export abstract class PluginDesignTypesApi {
|
|
|
62
60
|
* # Example
|
|
63
61
|
* ```ts
|
|
64
62
|
* const [first] = await snaptrude.design.types.list("wall")
|
|
65
|
-
* const type = await snaptrude.design.types.get(first.
|
|
63
|
+
* const type = await snaptrude.design.types.get(first.id)
|
|
66
64
|
* if (type) for (const layer of type.layers) console.log(layer.name, layer.thickness)
|
|
67
65
|
* ```
|
|
68
66
|
*/
|
|
69
|
-
public abstract get(typeId:
|
|
67
|
+
public abstract get(typeId: string): PluginApiReturn<PluginBuildingType | null>
|
|
70
68
|
}
|
|
71
69
|
|
|
72
70
|
/** The building-type families exposed by {@linkcode PluginDesignTypesApi}. */
|
|
@@ -87,8 +85,6 @@ export const PluginTypeLayer = z.object({
|
|
|
87
85
|
name: z.string(),
|
|
88
86
|
role: z.string(),
|
|
89
87
|
thickness: z.number(),
|
|
90
|
-
/** Native authored core membership. Never inferred from material or layer name. */
|
|
91
|
-
isCore: z.boolean().optional(),
|
|
92
88
|
material: z
|
|
93
89
|
.object({
|
|
94
90
|
name: z.string(),
|
|
@@ -103,7 +99,7 @@ export type PluginTypeLayer = z.infer<typeof PluginTypeLayer>
|
|
|
103
99
|
*
|
|
104
100
|
* | Property | Type | Description |
|
|
105
101
|
* |---|---|---|
|
|
106
|
-
* | `id` | `string` |
|
|
102
|
+
* | `id` | `string` | Stable `"<kind>:<name>"` token — pass to `design.types.get` |
|
|
107
103
|
* | `kind` | {@linkcode PluginBuildingTypeKind} | Which family it belongs to |
|
|
108
104
|
* | `label` | `string` | Human-readable label |
|
|
109
105
|
* | `isDefault` | `boolean` | `true` for a built-in type, `false` for a team/user type |
|
|
@@ -115,8 +111,6 @@ export const PluginBuildingTypeSummary = z.object({
|
|
|
115
111
|
label: z.string(),
|
|
116
112
|
isDefault: z.boolean(),
|
|
117
113
|
thickness: z.number(),
|
|
118
|
-
/** Present for native walls. Pass the whole pin to get/create/update, not its label or bare id. */
|
|
119
|
-
nativeFamily: PluginNativeWallType.optional(),
|
|
120
114
|
})
|
|
121
115
|
export type PluginBuildingTypeSummary = z.infer<typeof PluginBuildingTypeSummary>
|
|
122
116
|
|
|
@@ -125,7 +119,7 @@ export type PluginBuildingTypeSummary = z.infer<typeof PluginBuildingTypeSummary
|
|
|
125
119
|
*
|
|
126
120
|
* | Property | Type | Description |
|
|
127
121
|
* |---|---|---|
|
|
128
|
-
* | `id` | `string` |
|
|
122
|
+
* | `id` | `string` | Stable `"<kind>:<name>"` token |
|
|
129
123
|
* | `kind` | {@linkcode PluginBuildingTypeKind} | Which family it belongs to |
|
|
130
124
|
* | `label` | `string` | Human-readable label |
|
|
131
125
|
* | `isDefault` | `boolean` | `true` for a built-in type |
|
|
@@ -154,10 +148,9 @@ export type PluginDesignTypesListArgs = z.infer<typeof PluginDesignTypesListArgs
|
|
|
154
148
|
*
|
|
155
149
|
* | Property | Type | Description |
|
|
156
150
|
* |---|---|---|
|
|
157
|
-
* | `typeId` |
|
|
151
|
+
* | `typeId` | `string` | The `"<kind>:<name>"` id from `design.types.list` |
|
|
158
152
|
*/
|
|
159
153
|
export const PluginDesignTypesGetArgs = z.object({
|
|
160
|
-
|
|
161
|
-
typeId: z.union([z.string(), PluginNativeWallType]),
|
|
154
|
+
typeId: z.string(),
|
|
162
155
|
})
|
|
163
156
|
export type PluginDesignTypesGetArgs = z.infer<typeof PluginDesignTypesGetArgs>
|
|
@@ -9,10 +9,7 @@ import {
|
|
|
9
9
|
PluginSpaceUpdateResult,
|
|
10
10
|
} from "../../entity/space"
|
|
11
11
|
import { PluginDesignChangeResult } from "../lock"
|
|
12
|
-
import {
|
|
13
|
-
MassParametersPatch,
|
|
14
|
-
type MassParametersRecord,
|
|
15
|
-
} from "../../../massParameters"
|
|
12
|
+
import { MassParametersPatch, type MassParametersRecord } from "../../../massParameters"
|
|
16
13
|
import {
|
|
17
14
|
PluginBuildableEnvelopePolygonVertex,
|
|
18
15
|
PluginBuildableEnvelopeSetbackTier,
|
|
@@ -21,12 +18,6 @@ import {
|
|
|
21
18
|
} from "../../entity/buildableEnvelope"
|
|
22
19
|
import { PluginGridStyleOptions } from "../create/grids"
|
|
23
20
|
import { PluginEntityType } from "../query"
|
|
24
|
-
import { PluginWallType } from "../types"
|
|
25
|
-
import {
|
|
26
|
-
PluginConstructionType,
|
|
27
|
-
PluginFamilyValues,
|
|
28
|
-
type PluginFamilyUpdates,
|
|
29
|
-
} from "../catalog"
|
|
30
21
|
|
|
31
22
|
/**
|
|
32
23
|
* Sparse property updates for a space. Only provided fields change.
|
|
@@ -174,14 +165,13 @@ export type PluginDesignUpdateParametersArgs = z.infer<
|
|
|
174
165
|
* |---|---|---|
|
|
175
166
|
* | `thickness` | `number`? | Wall thickness, engine units (> 0) |
|
|
176
167
|
* | `height` | `number`? | Wall height, engine units (> 0) |
|
|
177
|
-
* | `type` |
|
|
168
|
+
* | `type` | `string`? | Convert the wall to another wall type — a name (or `wall:`-prefixed id) from `design.types.list("wall")` |
|
|
178
169
|
*/
|
|
179
170
|
export const PluginWallUpdates = z
|
|
180
171
|
.object({
|
|
181
172
|
thickness: z.number().positive().optional(),
|
|
182
173
|
height: z.number().positive().optional(),
|
|
183
|
-
type:
|
|
184
|
-
values: PluginFamilyValues.optional(),
|
|
174
|
+
type: z.string().trim().min(1).optional(),
|
|
185
175
|
})
|
|
186
176
|
.refine((p) => Object.keys(p).length > 0, {
|
|
187
177
|
message: "PluginWallUpdates requires at least one field to change",
|
|
@@ -206,8 +196,6 @@ export const PluginSlabUpdates = z
|
|
|
206
196
|
.object({
|
|
207
197
|
thickness: z.number().positive().optional(),
|
|
208
198
|
overhang: z.number().optional(),
|
|
209
|
-
type: PluginConstructionType.optional(),
|
|
210
|
-
values: PluginFamilyValues.optional(),
|
|
211
199
|
})
|
|
212
200
|
.refine((p) => Object.keys(p).length > 0, {
|
|
213
201
|
message: "PluginSlabUpdates requires at least one field to change",
|
|
@@ -325,11 +313,6 @@ export type PluginDesignUpdateGridArgs = z.infer<
|
|
|
325
313
|
*
|
|
326
314
|
* Migrated from the removed `entity.space.{update, updateGeometryFromProfile, bulkUpdate}`.
|
|
327
315
|
* Only provided fields change; each call is undoable. Failures throw (RPC rejects).
|
|
328
|
-
*
|
|
329
|
-
* Native family edits accept `type` and/or sparse `values` from `design.catalog`.
|
|
330
|
-
* Length overrides use mm; dimensional arguments use SU. Contours and axes stay unchanged.
|
|
331
|
-
* Shared/type overrides are refused. A thickness argument must agree with the layer values.
|
|
332
|
-
* Family roof overhang is unsupported; use the native slab path for family overhang edits.
|
|
333
316
|
*/
|
|
334
317
|
export abstract class PluginDesignUpdateApi {
|
|
335
318
|
constructor() {}
|
|
@@ -583,9 +566,6 @@ export abstract class PluginDesignUpdateApi {
|
|
|
583
566
|
* chamfer (the kernel numbers its faces differently): send the twist/taper
|
|
584
567
|
* keys with `operations: []` first (the message names them), re-select on
|
|
585
568
|
* the new shape, then send `{ operations }` back.
|
|
586
|
-
* Graph-bound spaces accept amount-only extrusion edits. Footprint, twist,
|
|
587
|
-
* taper and operation edits require the owning boundary tools, so generated
|
|
588
|
-
* walls, junctions and hosted openings remain synchronized.
|
|
589
569
|
* @throws VALIDATION for a key the kind does not have (the message lists the
|
|
590
570
|
* kind's keys), `kind` or `version` in a partial patch, or a value outside
|
|
591
571
|
* the constructor's own rules (torus tube ≥ ring, revolution angle ∉
|
|
@@ -793,24 +773,6 @@ export abstract class PluginDesignUpdateApi {
|
|
|
793
773
|
updates: PluginSlabUpdates,
|
|
794
774
|
): PluginApiReturn<PluginDesignChangeResult>
|
|
795
775
|
|
|
796
|
-
/** Replace a native beam family while preserving its authored axis. Values use mm/degrees.
|
|
797
|
-
* @param component Native beam. @param updates Saved family reference and optional instance values.
|
|
798
|
-
* @returns Affected component IDs. One undoable operation; unsupported geometry fails before mutation.
|
|
799
|
-
*/
|
|
800
|
-
public abstract beam(
|
|
801
|
-
component: ComponentHandle,
|
|
802
|
-
updates: PluginFamilyUpdates,
|
|
803
|
-
): PluginApiReturn<PluginDesignChangeResult>
|
|
804
|
-
|
|
805
|
-
/** Replace a native column family while preserving its authored axis. Values use mm/degrees.
|
|
806
|
-
* @param component Native column. @param updates Saved family reference and optional instance values.
|
|
807
|
-
* @returns Affected component IDs. One undoable operation; unsupported geometry fails before mutation.
|
|
808
|
-
*/
|
|
809
|
-
public abstract column(
|
|
810
|
-
component: ComponentHandle,
|
|
811
|
-
updates: PluginFamilyUpdates,
|
|
812
|
-
): PluginApiReturn<PluginDesignChangeResult>
|
|
813
|
-
|
|
814
776
|
/**
|
|
815
777
|
* Set a component's **absolute world elevation** — moves it vertically so its
|
|
816
778
|
* base (the bounding-box bottom, world Y) lands at `elevation`. Composed over
|
|
@@ -10,14 +10,13 @@ import { PluginObjectCatalogGroup, PluginObjectCatalogItem } from "../doors"
|
|
|
10
10
|
* at `design.query.*`. Window targets are {@linkcode ComponentHandle}s.
|
|
11
11
|
*
|
|
12
12
|
* The **catalog** reads (`listCatalogGroups`/`listCatalog`/`getCatalogItem`/`exists`)
|
|
13
|
-
* browse
|
|
14
|
-
*
|
|
15
|
-
*
|
|
13
|
+
* browse the placeable window library — plain value records keyed by a library id
|
|
14
|
+
* (team `_id` or general `fullName`), NOT handles — and feed `design.create.window`.
|
|
15
|
+
* They are network-backed but carry no `Async` suffix (§6.6) and never throw
|
|
16
|
+
* (`[]`/`null`). The {@linkcode PluginObjectCatalogGroup} / {@linkcode PluginObjectCatalogItem}
|
|
16
17
|
* DTOs are shared with `design.doors` (defined there, re-exported here).
|
|
17
18
|
*
|
|
18
|
-
*
|
|
19
|
-
* write declared width/height parameters, never mesh scale. Missing or derived
|
|
20
|
-
* controls reject. Use design.family.setParameters for sill and other controls.
|
|
19
|
+
* `getSillHeight` (bounds-derived) and the command-wired `mirror` land in a later pass.
|
|
21
20
|
*/
|
|
22
21
|
export abstract class PluginDesignWindowsApi {
|
|
23
22
|
constructor() {}
|
|
@@ -41,9 +40,7 @@ export abstract class PluginDesignWindowsApi {
|
|
|
41
40
|
* if (type) console.log("window type:", type)
|
|
42
41
|
* ```
|
|
43
42
|
*/
|
|
44
|
-
public abstract getType(
|
|
45
|
-
window: ComponentHandle,
|
|
46
|
-
): PluginApiReturn<string | null>
|
|
43
|
+
public abstract getType(window: ComponentHandle): PluginApiReturn<string | null>
|
|
47
44
|
|
|
48
45
|
/**
|
|
49
46
|
* Get the width of a window — how wide its opening is along the host wall.
|
|
@@ -63,9 +60,7 @@ export abstract class PluginDesignWindowsApi {
|
|
|
63
60
|
* if (width !== null) console.log("window width:", width)
|
|
64
61
|
* ```
|
|
65
62
|
*/
|
|
66
|
-
public abstract getWidth(
|
|
67
|
-
window: ComponentHandle,
|
|
68
|
-
): PluginApiReturn<number | null>
|
|
63
|
+
public abstract getWidth(window: ComponentHandle): PluginApiReturn<number | null>
|
|
69
64
|
|
|
70
65
|
/**
|
|
71
66
|
* Get the height of a window — how tall its opening is on the host wall.
|
|
@@ -85,13 +80,12 @@ export abstract class PluginDesignWindowsApi {
|
|
|
85
80
|
* if (height !== null) console.log("window height:", height)
|
|
86
81
|
* ```
|
|
87
82
|
*/
|
|
88
|
-
public abstract getHeight(
|
|
89
|
-
window: ComponentHandle,
|
|
90
|
-
): PluginApiReturn<number | null>
|
|
83
|
+
public abstract getHeight(window: ComponentHandle): PluginApiReturn<number | null>
|
|
91
84
|
|
|
92
85
|
/**
|
|
93
|
-
* Get
|
|
94
|
-
*
|
|
86
|
+
* Get a window's full dimensions in one call — width along the wall, vertical
|
|
87
|
+
* height, and thickness through the wall — measured in the window's local
|
|
88
|
+
* oriented space.
|
|
95
89
|
*
|
|
96
90
|
* @param window The window to query
|
|
97
91
|
* @returns The dimensions, or `null`
|
|
@@ -110,7 +104,7 @@ export abstract class PluginDesignWindowsApi {
|
|
|
110
104
|
* ```
|
|
111
105
|
*/
|
|
112
106
|
public abstract getDimensions(
|
|
113
|
-
window: ComponentHandle
|
|
107
|
+
window: ComponentHandle
|
|
114
108
|
): PluginApiReturn<PluginWindowDimensions | null>
|
|
115
109
|
|
|
116
110
|
/**
|
|
@@ -135,7 +129,7 @@ export abstract class PluginDesignWindowsApi {
|
|
|
135
129
|
*/
|
|
136
130
|
public abstract setWidth(
|
|
137
131
|
window: ComponentHandle,
|
|
138
|
-
width: number
|
|
132
|
+
width: number
|
|
139
133
|
): PluginApiReturn<PluginDesignChangeResult>
|
|
140
134
|
|
|
141
135
|
/**
|
|
@@ -159,7 +153,7 @@ export abstract class PluginDesignWindowsApi {
|
|
|
159
153
|
*/
|
|
160
154
|
public abstract setHeight(
|
|
161
155
|
window: ComponentHandle,
|
|
162
|
-
height: number
|
|
156
|
+
height: number
|
|
163
157
|
): PluginApiReturn<PluginDesignChangeResult>
|
|
164
158
|
|
|
165
159
|
/**
|
|
@@ -180,9 +174,7 @@ export abstract class PluginDesignWindowsApi {
|
|
|
180
174
|
* for (const g of groups) console.log(g.dbType, g.label, g.source)
|
|
181
175
|
* ```
|
|
182
176
|
*/
|
|
183
|
-
public abstract listCatalogGroups(): PluginApiReturn<
|
|
184
|
-
PluginObjectCatalogGroup[]
|
|
185
|
-
>
|
|
177
|
+
public abstract listCatalogGroups(): PluginApiReturn<PluginObjectCatalogGroup[]>
|
|
186
178
|
|
|
187
179
|
/**
|
|
188
180
|
* List the placeable window catalog (team + general libraries), optionally
|
|
@@ -204,7 +196,7 @@ export abstract class PluginDesignWindowsApi {
|
|
|
204
196
|
* ```
|
|
205
197
|
*/
|
|
206
198
|
public abstract listCatalog(
|
|
207
|
-
group?: string
|
|
199
|
+
group?: string
|
|
208
200
|
): PluginApiReturn<PluginObjectCatalogItem[]>
|
|
209
201
|
|
|
210
202
|
/**
|
|
@@ -226,7 +218,7 @@ export abstract class PluginDesignWindowsApi {
|
|
|
226
218
|
* ```
|
|
227
219
|
*/
|
|
228
220
|
public abstract getCatalogItem(
|
|
229
|
-
id: string
|
|
221
|
+
id: string
|
|
230
222
|
): PluginApiReturn<PluginObjectCatalogItem | null>
|
|
231
223
|
|
|
232
224
|
/**
|
|
@@ -290,9 +282,7 @@ export const PluginDesignWindowSetWidthArgs = z.object({
|
|
|
290
282
|
window: ComponentHandle,
|
|
291
283
|
width: z.number(),
|
|
292
284
|
})
|
|
293
|
-
export type PluginDesignWindowSetWidthArgs = z.infer<
|
|
294
|
-
typeof PluginDesignWindowSetWidthArgs
|
|
295
|
-
>
|
|
285
|
+
export type PluginDesignWindowSetWidthArgs = z.infer<typeof PluginDesignWindowSetWidthArgs>
|
|
296
286
|
|
|
297
287
|
/**
|
|
298
288
|
* Arguments for {@linkcode PluginDesignWindowsApi.setHeight}.
|
|
@@ -306,9 +296,7 @@ export const PluginDesignWindowSetHeightArgs = z.object({
|
|
|
306
296
|
window: ComponentHandle,
|
|
307
297
|
height: z.number(),
|
|
308
298
|
})
|
|
309
|
-
export type PluginDesignWindowSetHeightArgs = z.infer<
|
|
310
|
-
typeof PluginDesignWindowSetHeightArgs
|
|
311
|
-
>
|
|
299
|
+
export type PluginDesignWindowSetHeightArgs = z.infer<typeof PluginDesignWindowSetHeightArgs>
|
|
312
300
|
|
|
313
301
|
// ---------------------------------------------------------------------------
|
|
314
302
|
// catalog (shared DTOs defined in ../doors, re-exported here for symmetry)
|
|
@@ -327,9 +315,7 @@ export { PluginObjectCatalogGroup, PluginObjectCatalogItem }
|
|
|
327
315
|
export const PluginDesignWindowListCatalogArgs = z.object({
|
|
328
316
|
group: z.string().optional(),
|
|
329
317
|
})
|
|
330
|
-
export type PluginDesignWindowListCatalogArgs = z.infer<
|
|
331
|
-
typeof PluginDesignWindowListCatalogArgs
|
|
332
|
-
>
|
|
318
|
+
export type PluginDesignWindowListCatalogArgs = z.infer<typeof PluginDesignWindowListCatalogArgs>
|
|
333
319
|
|
|
334
320
|
/**
|
|
335
321
|
* Arguments for {@linkcode PluginDesignWindowsApi.getCatalogItem} / {@linkcode PluginDesignWindowsApi.exists}.
|
|
@@ -341,11 +327,7 @@ export type PluginDesignWindowListCatalogArgs = z.infer<
|
|
|
341
327
|
export const PluginDesignWindowGetCatalogItemArgs = z.object({
|
|
342
328
|
id: z.string(),
|
|
343
329
|
})
|
|
344
|
-
export type PluginDesignWindowGetCatalogItemArgs = z.infer<
|
|
345
|
-
typeof PluginDesignWindowGetCatalogItemArgs
|
|
346
|
-
>
|
|
330
|
+
export type PluginDesignWindowGetCatalogItemArgs = z.infer<typeof PluginDesignWindowGetCatalogItemArgs>
|
|
347
331
|
|
|
348
332
|
export const PluginDesignWindowExistsArgs = PluginDesignWindowGetCatalogItemArgs
|
|
349
|
-
export type PluginDesignWindowExistsArgs = z.infer<
|
|
350
|
-
typeof PluginDesignWindowExistsArgs
|
|
351
|
-
>
|
|
333
|
+
export type PluginDesignWindowExistsArgs = z.infer<typeof PluginDesignWindowExistsArgs>
|