@snaptrude/plugin-core 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +52 -0
- package/api-manifest.full.json +2044 -443
- package/api-manifest.json +2051 -394
- package/dist/api/analysis/heatmaps.d.ts +234 -0
- package/dist/api/analysis/heatmaps.d.ts.map +1 -0
- package/dist/api/analysis/illuminance.d.ts +145 -0
- package/dist/api/analysis/illuminance.d.ts.map +1 -0
- package/dist/api/analysis/index.d.ts +44 -0
- package/dist/api/analysis/index.d.ts.map +1 -0
- package/dist/api/analysis/shadows.d.ts +165 -0
- package/dist/api/analysis/shadows.d.ts.map +1 -0
- package/dist/api/analysis/sunlightHours.d.ts +208 -0
- package/dist/api/analysis/sunlightHours.d.ts.map +1 -0
- package/dist/api/analysis/sunpath.d.ts +80 -0
- package/dist/api/analysis/sunpath.d.ts.map +1 -0
- package/dist/api/core/index.d.ts +5 -0
- package/dist/api/core/index.d.ts.map +1 -1
- package/dist/api/core/io/import/index.d.ts +392 -0
- package/dist/api/core/io/import/index.d.ts.map +1 -0
- package/dist/api/core/io/index.d.ts +35 -0
- package/dist/api/core/io/index.d.ts.map +1 -0
- package/dist/api/core/io/job/index.d.ts +139 -0
- package/dist/api/core/io/job/index.d.ts.map +1 -0
- package/dist/api/core/io/query/index.d.ts +74 -0
- package/dist/api/core/io/query/index.d.ts.map +1 -0
- package/dist/api/core/io/terrain/index.d.ts +206 -0
- package/dist/api/core/io/terrain/index.d.ts.map +1 -0
- package/dist/api/core/io/underlay/index.d.ts +286 -0
- package/dist/api/core/io/underlay/index.d.ts.map +1 -0
- package/dist/api/core/layers.d.ts +7 -7
- package/dist/api/design/create/index.d.ts +9 -0
- package/dist/api/design/create/index.d.ts.map +1 -1
- package/dist/api/design/query/spaces.d.ts +3 -3
- package/dist/api/design/selection/index.d.ts +144 -0
- package/dist/api/design/selection/index.d.ts.map +1 -1
- package/dist/api/entity/space.d.ts +2 -2
- package/dist/api/index.d.ts +5 -0
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/program/site.d.ts +84 -0
- package/dist/api/program/site.d.ts.map +1 -1
- package/dist/handles.d.ts +33 -0
- package/dist/handles.d.ts.map +1 -1
- package/dist/index.cjs +1335 -987
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1278 -983
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/scripts/generate-manifest.test.mjs +26 -4
- package/src/api/analysis/heatmaps.ts +256 -0
- package/src/api/analysis/illuminance.ts +155 -0
- package/src/api/analysis/index.ts +46 -0
- package/src/api/analysis/shadows.ts +183 -0
- package/src/api/analysis/sunlightHours.ts +211 -0
- package/src/api/analysis/sunpath.ts +83 -0
- package/src/api/core/index.ts +5 -0
- package/src/api/core/io/import/index.ts +432 -0
- package/src/api/core/io/index.ts +37 -0
- package/src/api/core/io/job/index.ts +140 -0
- package/src/api/core/io/query/index.ts +71 -0
- package/src/api/core/io/terrain/index.ts +214 -0
- package/src/api/core/io/underlay/index.ts +295 -0
- package/src/api/design/create/index.ts +9 -0
- package/src/api/design/erase/index.ts +1 -1
- package/src/api/design/selection/index.ts +129 -0
- package/src/api/index.ts +5 -0
- package/src/api/program/site.ts +93 -0
- package/src/handles.ts +46 -0
|
@@ -90,6 +90,7 @@ export declare const PluginDesignQuerySpacesGetProperty: z.ZodEnum<{
|
|
|
90
90
|
position: "position";
|
|
91
91
|
id: "id";
|
|
92
92
|
name: "name";
|
|
93
|
+
storey: "storey";
|
|
93
94
|
height: "height";
|
|
94
95
|
depth: "depth";
|
|
95
96
|
innerProfiles: "innerProfiles";
|
|
@@ -99,7 +100,6 @@ export declare const PluginDesignQuerySpacesGetProperty: z.ZodEnum<{
|
|
|
99
100
|
massType: "massType";
|
|
100
101
|
spaceType: "spaceType";
|
|
101
102
|
areaClass: "areaClass";
|
|
102
|
-
storey: "storey";
|
|
103
103
|
departmentId: "departmentId";
|
|
104
104
|
departmentName: "departmentName";
|
|
105
105
|
departmentColor: "departmentColor";
|
|
@@ -126,6 +126,7 @@ export declare const PluginDesignQuerySpacesGetArgs: z.ZodObject<{
|
|
|
126
126
|
position: "position";
|
|
127
127
|
id: "id";
|
|
128
128
|
name: "name";
|
|
129
|
+
storey: "storey";
|
|
129
130
|
height: "height";
|
|
130
131
|
depth: "depth";
|
|
131
132
|
innerProfiles: "innerProfiles";
|
|
@@ -135,7 +136,6 @@ export declare const PluginDesignQuerySpacesGetArgs: z.ZodObject<{
|
|
|
135
136
|
massType: "massType";
|
|
136
137
|
spaceType: "spaceType";
|
|
137
138
|
areaClass: "areaClass";
|
|
138
|
-
storey: "storey";
|
|
139
139
|
departmentId: "departmentId";
|
|
140
140
|
departmentName: "departmentName";
|
|
141
141
|
departmentColor: "departmentColor";
|
|
@@ -162,6 +162,7 @@ export declare const PluginDesignQuerySpacesGetResult: z.ZodObject<{
|
|
|
162
162
|
}, z.core.$strip>>;
|
|
163
163
|
id: z.ZodOptional<z.ZodString>;
|
|
164
164
|
name: z.ZodOptional<z.ZodString>;
|
|
165
|
+
storey: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
165
166
|
height: z.ZodOptional<z.ZodNumber>;
|
|
166
167
|
depth: z.ZodOptional<z.ZodNumber>;
|
|
167
168
|
innerProfiles: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodUnion<readonly [z.ZodPipe<z.ZodString, z.ZodTransform<import("../../..").Handle<"line">, string>>, z.ZodPipe<z.ZodString, z.ZodTransform<import("../../..").Handle<"arc">, string>>]>>>>;
|
|
@@ -186,7 +187,6 @@ export declare const PluginDesignQuerySpacesGetResult: z.ZodObject<{
|
|
|
186
187
|
GROSS: "GROSS";
|
|
187
188
|
EXCLUDED: "EXCLUDED";
|
|
188
189
|
}>>;
|
|
189
|
-
storey: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
190
190
|
departmentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
191
191
|
departmentName: z.ZodOptional<z.ZodString>;
|
|
192
192
|
departmentColor: z.ZodOptional<z.ZodString>;
|
|
@@ -2,6 +2,109 @@ import * as z from "zod";
|
|
|
2
2
|
import { PluginApiReturn } from "../../../types";
|
|
3
3
|
import { ComponentHandle } from "../../../handles";
|
|
4
4
|
import { PluginDesignChangeResult } from "../lock";
|
|
5
|
+
/**
|
|
6
|
+
* The entity kinds {@linkcode PluginDesignSelectionApi.setByFilter} can select —
|
|
7
|
+
* the union of the editor's "Filter selection" menus (Design tab + BIM tab).
|
|
8
|
+
* Tokens mirror {@linkcode PluginEntityType} where a kind exists on the query
|
|
9
|
+
* surface; the rest are selection-only kinds the query surface cannot reach
|
|
10
|
+
* (layer-backed and annotation objects).
|
|
11
|
+
*
|
|
12
|
+
* | Value | Entity (menu label) |
|
|
13
|
+
* |---|---|
|
|
14
|
+
* | `"wall"` | Wall |
|
|
15
|
+
* | `"slab"` | Floor slab |
|
|
16
|
+
* | `"floor"` | Flooring |
|
|
17
|
+
* | `"door"` | Door |
|
|
18
|
+
* | `"window"` | Window |
|
|
19
|
+
* | `"beam"` | Beam |
|
|
20
|
+
* | `"column"` | Column |
|
|
21
|
+
* | `"ceiling"` | Ceiling |
|
|
22
|
+
* | `"roof"` | Roof |
|
|
23
|
+
* | `"staircase"` | Staircase |
|
|
24
|
+
* | `"furniture"` | Furniture |
|
|
25
|
+
* | `"pergola"` | Pergola |
|
|
26
|
+
* | `"sunshade"` | Sunshade |
|
|
27
|
+
* | `"referenceLine"` | Reference line |
|
|
28
|
+
* | `"space"` | Space (room mass) |
|
|
29
|
+
* | `"site"` | Site |
|
|
30
|
+
* | `"terrain"` | Terrain |
|
|
31
|
+
* | `"cad"` | CAD import |
|
|
32
|
+
* | `"pdf"` | PDF import |
|
|
33
|
+
* | `"image"` | Image import |
|
|
34
|
+
* | `"dimensionLine"` | Dimension line |
|
|
35
|
+
* | `"model3d"` | Imported 3D model |
|
|
36
|
+
* | `"neighborhoodBuilding"` | Neighborhood building |
|
|
37
|
+
* | `"programBlock"` | Program block (department mass) |
|
|
38
|
+
*/
|
|
39
|
+
export declare const PluginSelectionEntityType: z.ZodEnum<{
|
|
40
|
+
terrain: "terrain";
|
|
41
|
+
floor: "floor";
|
|
42
|
+
wall: "wall";
|
|
43
|
+
ceiling: "ceiling";
|
|
44
|
+
image: "image";
|
|
45
|
+
cad: "cad";
|
|
46
|
+
pdf: "pdf";
|
|
47
|
+
space: "space";
|
|
48
|
+
door: "door";
|
|
49
|
+
window: "window";
|
|
50
|
+
slab: "slab";
|
|
51
|
+
roof: "roof";
|
|
52
|
+
column: "column";
|
|
53
|
+
beam: "beam";
|
|
54
|
+
staircase: "staircase";
|
|
55
|
+
furniture: "furniture";
|
|
56
|
+
referenceLine: "referenceLine";
|
|
57
|
+
pergola: "pergola";
|
|
58
|
+
sunshade: "sunshade";
|
|
59
|
+
site: "site";
|
|
60
|
+
dimensionLine: "dimensionLine";
|
|
61
|
+
model3d: "model3d";
|
|
62
|
+
neighborhoodBuilding: "neighborhoodBuilding";
|
|
63
|
+
programBlock: "programBlock";
|
|
64
|
+
}>;
|
|
65
|
+
export type PluginSelectionEntityType = z.infer<typeof PluginSelectionEntityType>;
|
|
66
|
+
/**
|
|
67
|
+
* The filter for {@linkcode PluginDesignSelectionApi.setByFilter}. At least one
|
|
68
|
+
* field must be non-empty (to empty the selection use
|
|
69
|
+
* {@linkcode PluginDesignSelectionApi.clear}). Fields **AND**-combine; values
|
|
70
|
+
* within a field **OR**-combine — `{ storeys: [2], types: ["furniture"] }`
|
|
71
|
+
* selects only the furniture on storey 2.
|
|
72
|
+
*
|
|
73
|
+
* | Field | Type | Selects entities where |
|
|
74
|
+
* |---|---|---|
|
|
75
|
+
* | `storeys` | `number[]` | storey/floor level ∈ `storeys` (negative = basement) |
|
|
76
|
+
* | `types` | {@linkcode PluginSelectionEntityType}`[]` | entity kind ∈ `types` |
|
|
77
|
+
*/
|
|
78
|
+
export declare const PluginSelectionFilter: z.ZodObject<{
|
|
79
|
+
storeys: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
80
|
+
types: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
81
|
+
terrain: "terrain";
|
|
82
|
+
floor: "floor";
|
|
83
|
+
wall: "wall";
|
|
84
|
+
ceiling: "ceiling";
|
|
85
|
+
image: "image";
|
|
86
|
+
cad: "cad";
|
|
87
|
+
pdf: "pdf";
|
|
88
|
+
space: "space";
|
|
89
|
+
door: "door";
|
|
90
|
+
window: "window";
|
|
91
|
+
slab: "slab";
|
|
92
|
+
roof: "roof";
|
|
93
|
+
column: "column";
|
|
94
|
+
beam: "beam";
|
|
95
|
+
staircase: "staircase";
|
|
96
|
+
furniture: "furniture";
|
|
97
|
+
referenceLine: "referenceLine";
|
|
98
|
+
pergola: "pergola";
|
|
99
|
+
sunshade: "sunshade";
|
|
100
|
+
site: "site";
|
|
101
|
+
dimensionLine: "dimensionLine";
|
|
102
|
+
model3d: "model3d";
|
|
103
|
+
neighborhoodBuilding: "neighborhoodBuilding";
|
|
104
|
+
programBlock: "programBlock";
|
|
105
|
+
}>>>;
|
|
106
|
+
}, z.core.$strip>;
|
|
107
|
+
export type PluginSelectionFilter = z.infer<typeof PluginSelectionFilter>;
|
|
5
108
|
/**
|
|
6
109
|
* `snaptrude.design.selection` — read and mutate the current scene selection.
|
|
7
110
|
*
|
|
@@ -115,6 +218,47 @@ export declare abstract class PluginDesignSelectionApi {
|
|
|
115
218
|
* ```
|
|
116
219
|
*/
|
|
117
220
|
abstract clear(): PluginApiReturn<PluginDesignChangeResult>;
|
|
221
|
+
/**
|
|
222
|
+
* Replace the selection with every visible entity of the active building that
|
|
223
|
+
* matches the filter — the programmatic equivalent of the editor's
|
|
224
|
+
* **Story selection** (`storeys`) and **Filter selection** (`types`) menus
|
|
225
|
+
* under the select tool, including their combination (fields AND, values
|
|
226
|
+
* within a field OR). Reaches selection-only kinds the query surface cannot
|
|
227
|
+
* (sites, terrain, CAD/PDF/image imports, dimension lines, 3D models,
|
|
228
|
+
* neighborhood buildings) and selects whole groups the way the editor does.
|
|
229
|
+
*
|
|
230
|
+
* This is a one-shot bulk select, not a persistent mode: the user's next
|
|
231
|
+
* canvas click resets the underlying filter state (the selection it made
|
|
232
|
+
* stays until changed). Results honor the ambient view — active building,
|
|
233
|
+
* hidden objects/buckets, and in 2D the active storey.
|
|
234
|
+
*
|
|
235
|
+
* @param filter Which entities to select — {@linkcode PluginSelectionFilter};
|
|
236
|
+
* at least one field must be non-empty
|
|
237
|
+
* @returns The resulting selection snapshot
|
|
238
|
+
*
|
|
239
|
+
* @examplePrompt Select everything on storey 2
|
|
240
|
+
* @examplePrompt Select all the walls and doors
|
|
241
|
+
* @examplePrompt Story selection: select the ground floor and first floor
|
|
242
|
+
* @examplePrompt Filter selection: select all furniture in the model
|
|
243
|
+
* @examplePrompt Select only the furniture on the second storey
|
|
244
|
+
* @examplePrompt Select all the spaces so I can recolor them
|
|
245
|
+
*
|
|
246
|
+
* # Example
|
|
247
|
+
* ```ts
|
|
248
|
+
* // "Story selection": everything on storeys 1 and 2
|
|
249
|
+
* await snaptrude.design.selection.setByFilter({ storeys: [1, 2] })
|
|
250
|
+
*
|
|
251
|
+
* // "Filter selection": all walls and doors
|
|
252
|
+
* await snaptrude.design.selection.setByFilter({ types: ["wall", "door"] })
|
|
253
|
+
*
|
|
254
|
+
* // Combined: only the furniture on storey 2
|
|
255
|
+
* const { affected } = await snaptrude.design.selection.setByFilter({
|
|
256
|
+
* storeys: [2],
|
|
257
|
+
* types: ["furniture"],
|
|
258
|
+
* })
|
|
259
|
+
* ```
|
|
260
|
+
*/
|
|
261
|
+
abstract setByFilter(filter: PluginSelectionFilter): PluginApiReturn<PluginDesignChangeResult>;
|
|
118
262
|
}
|
|
119
263
|
/**
|
|
120
264
|
* Arguments for {@linkcode PluginDesignSelectionApi.set}.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/design/selection/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;;;;;;;;GAQG;AACH,8BAAsB,wBAAwB;;IAG5C;;;;;;;;;;;;;;;;;;;;;OAqBG;aACa,GAAG,IAAI,eAAe,CAAC,eAAe,EAAE,CAAC;IAEzD;;;;;;;;;;;;;;;;;;;OAmBG;aACa,GAAG,CAAC,UAAU,EAAE,eAAe,EAAE,GAAG,eAAe,CAAC,wBAAwB,CAAC;IAE7F;;;;;;;;;;;;;;;;;;;OAmBG;aACa,GAAG,CAAC,UAAU,EAAE,eAAe,EAAE,GAAG,eAAe,CAAC,wBAAwB,CAAC;IAE7F;;;;;;;;;;;;;;;;;;OAkBG;aACa,MAAM,CACpB,UAAU,EAAE,eAAe,EAAE,GAC5B,eAAe,CAAC,wBAAwB,CAAC;IAE5C;;;;;;;;;;;;;;;OAeG;aACa,KAAK,IAAI,eAAe,CAAC,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/design/selection/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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;EAyBpC,CAAA;AACF,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAEjF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAQ9B,CAAA;AACJ,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEzE;;;;;;;;GAQG;AACH,8BAAsB,wBAAwB;;IAG5C;;;;;;;;;;;;;;;;;;;;;OAqBG;aACa,GAAG,IAAI,eAAe,CAAC,eAAe,EAAE,CAAC;IAEzD;;;;;;;;;;;;;;;;;;;OAmBG;aACa,GAAG,CAAC,UAAU,EAAE,eAAe,EAAE,GAAG,eAAe,CAAC,wBAAwB,CAAC;IAE7F;;;;;;;;;;;;;;;;;;;OAmBG;aACa,GAAG,CAAC,UAAU,EAAE,eAAe,EAAE,GAAG,eAAe,CAAC,wBAAwB,CAAC;IAE7F;;;;;;;;;;;;;;;;;;OAkBG;aACa,MAAM,CACpB,UAAU,EAAE,eAAe,EAAE,GAC5B,eAAe,CAAC,wBAAwB,CAAC;IAE5C;;;;;;;;;;;;;;;OAeG;aACa,KAAK,IAAI,eAAe,CAAC,wBAAwB,CAAC;IAElE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAuCG;aACa,WAAW,CACzB,MAAM,EAAE,qBAAqB,GAC5B,eAAe,CAAC,wBAAwB,CAAC;CAC7C;AAED;;;;;;GAMG;AACH,eAAO,MAAM,4BAA4B;;iBAEvC,CAAA;AACF,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAEvF,eAAO,MAAM,4BAA4B;;iBAA+B,CAAA;AACxE,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAEvF,eAAO,MAAM,+BAA+B;;iBAA+B,CAAA;AAC3E,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAA"}
|
|
@@ -133,6 +133,7 @@ export declare const PluginSpaceGetProperty: z.ZodEnum<{
|
|
|
133
133
|
position: "position";
|
|
134
134
|
id: "id";
|
|
135
135
|
name: "name";
|
|
136
|
+
storey: "storey";
|
|
136
137
|
height: "height";
|
|
137
138
|
depth: "depth";
|
|
138
139
|
innerProfiles: "innerProfiles";
|
|
@@ -142,7 +143,6 @@ export declare const PluginSpaceGetProperty: z.ZodEnum<{
|
|
|
142
143
|
massType: "massType";
|
|
143
144
|
spaceType: "spaceType";
|
|
144
145
|
areaClass: "areaClass";
|
|
145
|
-
storey: "storey";
|
|
146
146
|
departmentId: "departmentId";
|
|
147
147
|
departmentName: "departmentName";
|
|
148
148
|
departmentColor: "departmentColor";
|
|
@@ -169,6 +169,7 @@ export declare const PluginSpaceGetArgs: z.ZodObject<{
|
|
|
169
169
|
position: "position";
|
|
170
170
|
id: "id";
|
|
171
171
|
name: "name";
|
|
172
|
+
storey: "storey";
|
|
172
173
|
height: "height";
|
|
173
174
|
depth: "depth";
|
|
174
175
|
innerProfiles: "innerProfiles";
|
|
@@ -178,7 +179,6 @@ export declare const PluginSpaceGetArgs: z.ZodObject<{
|
|
|
178
179
|
massType: "massType";
|
|
179
180
|
spaceType: "spaceType";
|
|
180
181
|
areaClass: "areaClass";
|
|
181
|
-
storey: "storey";
|
|
182
182
|
departmentId: "departmentId";
|
|
183
183
|
departmentName: "departmentName";
|
|
184
184
|
departmentColor: "departmentColor";
|
package/dist/api/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { PluginDesignApi } from "./design";
|
|
|
3
3
|
import { PluginEntityApi } from "./entity";
|
|
4
4
|
import { PluginProgramApi } from "./program";
|
|
5
5
|
import { PluginPresentationApi } from "./presentation";
|
|
6
|
+
import { PluginAnalysisApi } from "./analysis";
|
|
6
7
|
/**
|
|
7
8
|
* Root API surface for Snaptrude plugins.
|
|
8
9
|
*
|
|
@@ -13,6 +14,7 @@ import { PluginPresentationApi } from "./presentation";
|
|
|
13
14
|
* - {@linkcode PluginApi.entity} — CRUD operations on Snaptrude entities (spaces, stories)
|
|
14
15
|
* - {@linkcode PluginApi.program} — Program-mode planning reads (departments, metrics)
|
|
15
16
|
* - {@linkcode PluginApi.presentation} — Presentation preparation (views, AI Inspiration)
|
|
17
|
+
* - {@linkcode PluginApi.analysis} — Sustainability analysis (sunpath, shadows, sunlight/illuminance heatmaps)
|
|
16
18
|
*/
|
|
17
19
|
export declare abstract class PluginApi {
|
|
18
20
|
/** Core math, geometry, history, and units primitives. See {@linkcode PluginCoreApi}. */
|
|
@@ -25,6 +27,8 @@ export declare abstract class PluginApi {
|
|
|
25
27
|
abstract program: PluginProgramApi;
|
|
26
28
|
/** Presentation preparation reads — saved views. See {@linkcode PluginPresentationApi}. */
|
|
27
29
|
abstract presentation: PluginPresentationApi;
|
|
30
|
+
/** Sustainability analysis — sun & daylight studies. See {@linkcode PluginAnalysisApi}. */
|
|
31
|
+
abstract analysis: PluginAnalysisApi;
|
|
28
32
|
constructor();
|
|
29
33
|
}
|
|
30
34
|
export * from "./core";
|
|
@@ -32,4 +36,5 @@ export * from "./design";
|
|
|
32
36
|
export * from "./entity";
|
|
33
37
|
export * from "./program";
|
|
34
38
|
export * from "./presentation";
|
|
39
|
+
export * from "./analysis";
|
|
35
40
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/api/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE9C;;;;;;;;;;;GAWG;AACH,8BAAsB,SAAS;IAC7B,yFAAyF;IACzF,SAAgB,IAAI,EAAE,aAAa,CAAA;IACnC,0EAA0E;IAC1E,SAAgB,MAAM,EAAE,eAAe,CAAA;IACvC,8EAA8E;IAC9E,SAAgB,MAAM,EAAE,eAAe,CAAA;IACvC,oGAAoG;IACpG,SAAgB,OAAO,EAAE,gBAAgB,CAAA;IACzC,2FAA2F;IAC3F,SAAgB,YAAY,EAAE,qBAAqB,CAAA;IACnD,2FAA2F;IAC3F,SAAgB,QAAQ,EAAE,iBAAiB,CAAA;;CAG5C;AAED,cAAc,QAAQ,CAAA;AACtB,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA"}
|
|
@@ -120,6 +120,61 @@ export declare abstract class PluginProgramSiteApi {
|
|
|
120
120
|
* ```
|
|
121
121
|
*/
|
|
122
122
|
abstract getContext(): PluginApiReturn<PluginProgramSiteContextResult>;
|
|
123
|
+
/**
|
|
124
|
+
* Get the project's geographic location.
|
|
125
|
+
*
|
|
126
|
+
* The latitude/longitude the site is geo-located at — the location the
|
|
127
|
+
* `analysis.*` sun and daylight studies compute against. Returns `null`
|
|
128
|
+
* when the project is not geo-located on terrain (there is no fallback
|
|
129
|
+
* location).
|
|
130
|
+
*
|
|
131
|
+
* Note the spelling: this result uses the full `{ latitude, longitude }`
|
|
132
|
+
* keys, while the older site reads
|
|
133
|
+
* ({@linkcode PluginProgramSiteApi.getContext},
|
|
134
|
+
* {@linkcode PluginProgramSiteApi.listGeoPolygons}) use the abbreviated
|
|
135
|
+
* `{ lat, lng }`.
|
|
136
|
+
*
|
|
137
|
+
* @returns A {@linkcode PluginProgramSiteLocationResult} —
|
|
138
|
+
* `{ latitude, longitude }`, or `null` when the project has no
|
|
139
|
+
* geo-located site.
|
|
140
|
+
*
|
|
141
|
+
* @examplePrompt What's the project's latitude and longitude?
|
|
142
|
+
* @examplePrompt Where is this site located?
|
|
143
|
+
* @examplePrompt Get the geographic coordinates of the project
|
|
144
|
+
*
|
|
145
|
+
* # Example
|
|
146
|
+
* ```ts
|
|
147
|
+
* const location = await snaptrude.program.site.getLocation()
|
|
148
|
+
* if (location) console.log(location.latitude, location.longitude)
|
|
149
|
+
* ```
|
|
150
|
+
*/
|
|
151
|
+
abstract getLocation(): PluginApiReturn<PluginProgramSiteLocationResult>;
|
|
152
|
+
/**
|
|
153
|
+
* Get the site's true-north angle.
|
|
154
|
+
*
|
|
155
|
+
* The angle in degrees the model's north (the scene's +Z axis) is rotated
|
|
156
|
+
* from true north, derived from the terrain's rotation. `0` means the
|
|
157
|
+
* model is aligned to true north. Reported in `[0, 360)`,
|
|
158
|
+
* **clockwise-positive** viewed from above (Babylon's +Y rotation sign) —
|
|
159
|
+
* note this is the opposite sign convention to `design.transform.rotate`,
|
|
160
|
+
* where positive = CCW. Returns `null` when the project is not
|
|
161
|
+
* geo-located on terrain.
|
|
162
|
+
*
|
|
163
|
+
* @returns A {@linkcode PluginProgramSiteNorthAngleResult} — the angle in
|
|
164
|
+
* degrees (`[0, 360)`, clockwise-positive), or `null` when the project
|
|
165
|
+
* has no geo-located site.
|
|
166
|
+
*
|
|
167
|
+
* @examplePrompt What's the north angle of the site?
|
|
168
|
+
* @examplePrompt How far is the model rotated from true north?
|
|
169
|
+
* @examplePrompt Get the project's true north direction
|
|
170
|
+
*
|
|
171
|
+
* # Example
|
|
172
|
+
* ```ts
|
|
173
|
+
* const northAngle = await snaptrude.program.site.getNorthAngle()
|
|
174
|
+
* if (northAngle !== null) console.log(`${northAngle}° from true north`)
|
|
175
|
+
* ```
|
|
176
|
+
*/
|
|
177
|
+
abstract getNorthAngle(): PluginApiReturn<PluginProgramSiteNorthAngleResult>;
|
|
123
178
|
}
|
|
124
179
|
/**
|
|
125
180
|
* A 2D ground-plane point of a site parcel footprint, in scene coordinates
|
|
@@ -364,4 +419,33 @@ export declare const PluginProgramSiteContextResult: z.ZodNullable<z.ZodObject<{
|
|
|
364
419
|
}, z.core.$strip>>;
|
|
365
420
|
}, z.core.$strip>>;
|
|
366
421
|
export type PluginProgramSiteContextResult = z.infer<typeof PluginProgramSiteContextResult>;
|
|
422
|
+
/**
|
|
423
|
+
* The project's geographic location (WGS84).
|
|
424
|
+
*
|
|
425
|
+
* | Property | Type | Description |
|
|
426
|
+
* |---|---|---|
|
|
427
|
+
* | `latitude` | `number` | Latitude (degrees) |
|
|
428
|
+
* | `longitude` | `number` | Longitude (degrees) |
|
|
429
|
+
*/
|
|
430
|
+
export declare const PluginProgramSiteLocation: z.ZodObject<{
|
|
431
|
+
latitude: z.ZodNumber;
|
|
432
|
+
longitude: z.ZodNumber;
|
|
433
|
+
}, z.core.$strip>;
|
|
434
|
+
export type PluginProgramSiteLocation = z.infer<typeof PluginProgramSiteLocation>;
|
|
435
|
+
/**
|
|
436
|
+
* Result of {@linkcode PluginProgramSiteApi.getLocation} — the location, or
|
|
437
|
+
* `null` when the project is not geo-located.
|
|
438
|
+
*/
|
|
439
|
+
export declare const PluginProgramSiteLocationResult: z.ZodNullable<z.ZodObject<{
|
|
440
|
+
latitude: z.ZodNumber;
|
|
441
|
+
longitude: z.ZodNumber;
|
|
442
|
+
}, z.core.$strip>>;
|
|
443
|
+
export type PluginProgramSiteLocationResult = z.infer<typeof PluginProgramSiteLocationResult>;
|
|
444
|
+
/**
|
|
445
|
+
* Result of {@linkcode PluginProgramSiteApi.getNorthAngle} — the true-north
|
|
446
|
+
* angle in degrees (`[0, 360)`, clockwise-positive), or `null` when the
|
|
447
|
+
* project is not geo-located.
|
|
448
|
+
*/
|
|
449
|
+
export declare const PluginProgramSiteNorthAngleResult: z.ZodNullable<z.ZodNumber>;
|
|
450
|
+
export type PluginProgramSiteNorthAngleResult = z.infer<typeof PluginProgramSiteNorthAngleResult>;
|
|
367
451
|
//# sourceMappingURL=site.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"site.d.ts","sourceRoot":"","sources":["../../../src/api/program/site.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAG7C;;;;;;;;;;;;;;;GAeG;AACH,8BAAsB,oBAAoB;;IAGxC;;;;;;;;;;;;;;;;;;OAkBG;aACa,GAAG,IAAI,eAAe,CAAC,yBAAyB,CAAC;IAEjE;;;;;;;;;;;;;;;;;;OAkBG;aACa,OAAO,IAAI,eAAe,CAAC,2BAA2B,CAAC;IAEvE;;;;;;;;;;;;;;;;;OAiBG;aACa,YAAY,IAAI,eAAe,CAAC,mCAAmC,CAAC;IAEpF;;;;;;;;;;;;;;;;;;;;OAoBG;aACa,eAAe,IAAI,eAAe,CAAC,sCAAsC,CAAC;IAE1F;;;;;;;;;;;;;;;;;;;OAmBG;aACa,UAAU,IAAI,eAAe,CAAC,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"site.d.ts","sourceRoot":"","sources":["../../../src/api/program/site.ts"],"names":[],"mappings":"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"}
|
package/dist/handles.d.ts
CHANGED
|
@@ -40,6 +40,31 @@ export type ComponentHandle = EntityId<"component">;
|
|
|
40
40
|
* Project-scoped, not a scene entity.
|
|
41
41
|
*/
|
|
42
42
|
export type MaterialHandle = EntityId<"material">;
|
|
43
|
+
/**
|
|
44
|
+
* A placed **scene underlay** — an imported reference plane the user traces over:
|
|
45
|
+
* an image `FloorPlan`, a `PDF` overlay, or a `CAD` sketch. Entity-style: the token
|
|
46
|
+
* IS the raw `Component.id` (`fp_…` / a pdf id / `cad_…`). Resolved live host-side
|
|
47
|
+
* via the import-order layer walk (`collectStoreyImportItems`) — NOT via
|
|
48
|
+
* `ComponentUtility.FindComponentById`, which does not index underlays. No arena, no
|
|
49
|
+
* quota, stable across undo/redo. Returned by `core.io.import.{image,pdf,cadJson}`
|
|
50
|
+
* and consumed by every `core.io.underlay.*` method.
|
|
51
|
+
*/
|
|
52
|
+
export type UnderlayHandle = EntityId<"underlay">;
|
|
53
|
+
/**
|
|
54
|
+
* The project's **site terrain** — a Mapbox-derived topography mesh. Entity-style
|
|
55
|
+
* and a project **singleton** (one terrain per project): the token is the terrain
|
|
56
|
+
* `Component.id` (`terrain-…`), resolved live via `TerrainOperations.getTerrain()`
|
|
57
|
+
* (absent from the level component collections, so NOT `FindComponentById`).
|
|
58
|
+
* Returned by `core.io.import.terrain`.
|
|
59
|
+
*/
|
|
60
|
+
export type TerrainHandle = EntityId<"terrain">;
|
|
61
|
+
/**
|
|
62
|
+
* A handle to an **asynchronous import job** (today: a DWG → Forge conversion, which
|
|
63
|
+
* can take minutes). Returned immediately by `core.io.import.dwg`; poll it via
|
|
64
|
+
* `core.io.job.*` (`getStatus` / `isComplete` / `getResult` / `getError`). The token
|
|
65
|
+
* is the engine's import request id; job state lives in a host-side registry.
|
|
66
|
+
*/
|
|
67
|
+
export type ImportJobHandle = EntityId<"importJob">;
|
|
43
68
|
export type Vec3Handle = Handle<"vec3">;
|
|
44
69
|
export type QuatHandle = Handle<"quat">;
|
|
45
70
|
export type LineHandle = Handle<"line">;
|
|
@@ -101,6 +126,14 @@ export declare const ComponentHandle: z.ZodPipe<z.ZodString, z.ZodTransform<Comp
|
|
|
101
126
|
* prefix) — validated only as non-empty, resolved live via `scene.getMaterialByName`.
|
|
102
127
|
*/
|
|
103
128
|
export declare const MaterialHandle: z.ZodPipe<z.ZodString, z.ZodTransform<MaterialHandle, string>>;
|
|
129
|
+
/**
|
|
130
|
+
* {@linkcode UnderlayHandle} / {@linkcode TerrainHandle} / {@linkcode ImportJobHandle}
|
|
131
|
+
* are entity-style handles — raw host ids, validated only as a non-empty string
|
|
132
|
+
* (no `"<kind>_"` prefix), resolved live host-side (existence enforced there).
|
|
133
|
+
*/
|
|
134
|
+
export declare const UnderlayHandle: z.ZodPipe<z.ZodString, z.ZodTransform<UnderlayHandle, string>>;
|
|
135
|
+
export declare const TerrainHandle: z.ZodPipe<z.ZodString, z.ZodTransform<TerrainHandle, string>>;
|
|
136
|
+
export declare const ImportJobHandle: z.ZodPipe<z.ZodString, z.ZodTransform<ImportJobHandle, string>>;
|
|
104
137
|
export declare const Vec3Handle: z.ZodPipe<z.ZodString, z.ZodTransform<Handle<"vec3">, string>>;
|
|
105
138
|
export declare const QuatHandle: z.ZodPipe<z.ZodString, z.ZodTransform<Handle<"quat">, string>>;
|
|
106
139
|
export declare const LineHandle: z.ZodPipe<z.ZodString, z.ZodTransform<Handle<"line">, string>>;
|
package/dist/handles.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handles.d.ts","sourceRoot":"","sources":["../src/handles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AAExB;;;;;;;;GAQG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,MAAM,IAAI,MAAM,GAAG;IAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;CAAE,CAAA;AAExE;;;;GAIG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAA;AAE3D,kFAAkF;AAClF,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;AAE7C,gFAAgF;AAChF,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;AAE7C,yEAAyE;AACzE,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;AAEzC;;;;;;;GAOG;AACH,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAA;AAEnD;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"handles.d.ts","sourceRoot":"","sources":["../src/handles.ts"],"names":[],"mappings":"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"}
|