@snaptrude/plugin-core 0.11.0-rc.1 → 1.0.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/AGENTS.md +4 -0
- package/CHANGELOG.md +176 -14
- package/api-manifest.json +872 -49
- 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 +447 -0
- package/dist/api/core/camera/index.d.ts.map +1 -1
- package/dist/api/core/geom/create/index.d.ts +942 -101
- package/dist/api/core/geom/create/index.d.ts.map +1 -1
- package/dist/api/core/geom/query/brep.d.ts +59 -2
- package/dist/api/core/geom/query/brep.d.ts.map +1 -1
- package/dist/api/core/geom/query/curve.d.ts +59 -35
- package/dist/api/core/geom/query/curve.d.ts.map +1 -1
- package/dist/api/core/geom/query/edge.d.ts +2 -2
- package/dist/api/core/geom/query/face.d.ts +105 -0
- package/dist/api/core/geom/query/face.d.ts.map +1 -1
- package/dist/api/core/geom/update/contour.d.ts +10 -2
- package/dist/api/core/geom/update/contour.d.ts.map +1 -1
- package/dist/api/core/geom/update/curve.d.ts +5 -5
- package/dist/api/core/geom/update/profile.d.ts +3 -1
- package/dist/api/core/geom/update/profile.d.ts.map +1 -1
- package/dist/api/core/handles/index.d.ts +4 -2
- package/dist/api/core/handles/index.d.ts.map +1 -1
- package/dist/api/core/index.d.ts +4 -4
- package/dist/api/core/index.d.ts.map +1 -1
- package/dist/api/core/io/import/index.d.ts +3 -1
- package/dist/api/core/io/import/index.d.ts.map +1 -1
- package/dist/api/core/layers.d.ts +377 -255
- package/dist/api/core/layers.d.ts.map +1 -1
- package/dist/api/core/mode/index.d.ts +19 -7
- package/dist/api/core/mode/index.d.ts.map +1 -1
- package/dist/api/core/proposals/index.d.ts +4 -3
- package/dist/api/core/proposals/index.d.ts.map +1 -1
- package/dist/api/core/storeys/index.d.ts +17 -2
- package/dist/api/core/storeys/index.d.ts.map +1 -1
- package/dist/api/core/storeys/layers.d.ts +408 -0
- package/dist/api/core/storeys/layers.d.ts.map +1 -0
- package/dist/api/core/tags.d.ts +84 -3
- package/dist/api/core/tags.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 +299 -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 +269 -0
- package/dist/api/design/create/bulk-items.d.ts.map +1 -0
- package/dist/api/design/create/grids.d.ts +132 -0
- package/dist/api/design/create/grids.d.ts.map +1 -0
- package/dist/api/design/create/index.d.ts +753 -102
- package/dist/api/design/create/index.d.ts.map +1 -1
- package/dist/api/design/create/opening-fields.d.ts +38 -0
- package/dist/api/design/create/opening-fields.d.ts.map +1 -0
- package/dist/api/design/delete/index.d.ts +7 -20
- package/dist/api/design/delete/index.d.ts.map +1 -1
- package/dist/api/design/dimensions.d.ts +427 -0
- package/dist/api/design/dimensions.d.ts.map +1 -0
- package/dist/api/design/doors/index.d.ts +24 -23
- package/dist/api/design/doors/index.d.ts.map +1 -1
- package/dist/api/design/family.d.ts +1446 -0
- package/dist/api/design/family.d.ts.map +1 -0
- package/dist/api/design/grids.d.ts +237 -0
- package/dist/api/design/grids.d.ts.map +1 -0
- package/dist/api/design/index.d.ts +30 -0
- package/dist/api/design/index.d.ts.map +1 -1
- package/dist/api/design/networks.d.ts +1703 -0
- package/dist/api/design/networks.d.ts.map +1 -0
- package/dist/api/design/query/geometry/index.d.ts +33 -5
- package/dist/api/design/query/geometry/index.d.ts.map +1 -1
- package/dist/api/design/query/grids.d.ts +287 -0
- package/dist/api/design/query/grids.d.ts.map +1 -0
- package/dist/api/design/query/index.d.ts +143 -36
- package/dist/api/design/query/index.d.ts.map +1 -1
- package/dist/api/design/query/spaces.d.ts +5 -66
- package/dist/api/design/query/spaces.d.ts.map +1 -1
- package/dist/api/design/selection/index.d.ts +12 -12
- 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 +412 -8
- 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/entity/buildableEnvelope.d.ts +84 -2
- package/dist/api/entity/buildableEnvelope.d.ts.map +1 -1
- package/dist/api/entity/referenceLine.d.ts +13 -1
- package/dist/api/entity/referenceLine.d.ts.map +1 -1
- package/dist/api/entity/space.d.ts +12 -15
- package/dist/api/entity/space.d.ts.map +1 -1
- package/dist/api/entity/story.d.ts +4 -4
- package/dist/api/presentation/aiInspiration.d.ts +24 -24
- package/dist/api/presentation/annotate.d.ts +38 -22
- package/dist/api/presentation/annotate.d.ts.map +1 -1
- package/dist/api/presentation/camera.d.ts +265 -0
- package/dist/api/presentation/camera.d.ts.map +1 -0
- 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/graphics.d.ts +419 -0
- package/dist/api/presentation/graphics.d.ts.map +1 -0
- package/dist/api/presentation/index.d.ts +66 -12
- package/dist/api/presentation/index.d.ts.map +1 -1
- package/dist/api/presentation/placedViews.d.ts +117 -51
- 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 -37
- package/dist/api/presentation/sheets.d.ts.map +1 -1
- package/dist/api/presentation/standards.d.ts +590 -0
- package/dist/api/presentation/standards.d.ts.map +1 -0
- 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 +144 -9
- package/dist/api/presentation/views.d.ts.map +1 -1
- package/dist/api/presentation/walkthroughs.d.ts +1350 -0
- package/dist/api/presentation/walkthroughs.d.ts.map +1 -0
- package/dist/api/program/departments.d.ts +58 -2
- package/dist/api/program/departments.d.ts.map +1 -1
- package/dist/api/program/index.d.ts +16 -6
- package/dist/api/program/index.d.ts.map +1 -1
- package/dist/api/program/labels.d.ts +355 -0
- package/dist/api/program/labels.d.ts.map +1 -0
- package/dist/api/program/metadata.d.ts +328 -0
- package/dist/api/program/metadata.d.ts.map +1 -0
- package/dist/api/program/site.d.ts +4 -4
- package/dist/api/program/spreadsheet.d.ts +267 -4
- package/dist/api/program/spreadsheet.d.ts.map +1 -1
- package/dist/api/workspace/index.d.ts +49 -2
- package/dist/api/workspace/index.d.ts.map +1 -1
- package/dist/errors/codes.d.ts +5 -8
- package/dist/errors/codes.d.ts.map +1 -1
- package/dist/handles.d.ts +32 -3
- package/dist/handles.d.ts.map +1 -1
- package/dist/index.cjs +6534 -2865
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6118 -2857
- package/dist/index.js.map +1 -1
- package/dist/massParameters.d.ts +287 -0
- package/dist/massParameters.d.ts.map +1 -0
- package/dist/massParameters.ops.d.ts +138 -0
- package/dist/massParameters.ops.d.ts.map +1 -0
- package/package.json +2 -1
- package/scripts/check-dist-fresh.mjs +22 -0
- package/scripts/generate-manifest.mjs +5 -0
- package/scripts/generate-manifest.test.mjs +14 -3
- package/src/api/core/camera/index.ts +429 -1
- package/src/api/core/geom/create/index.ts +1037 -102
- package/src/api/core/geom/query/brep.ts +60 -2
- package/src/api/core/geom/query/curve.ts +26 -2
- package/src/api/core/geom/query/edge.ts +2 -2
- package/src/api/core/geom/query/face.ts +109 -4
- package/src/api/core/geom/update/contour.ts +10 -2
- package/src/api/core/geom/update/profile.ts +2 -0
- package/src/api/core/handles/index.ts +3 -2
- package/src/api/core/index.ts +4 -4
- package/src/api/core/io/import/index.ts +11 -3
- package/src/api/core/layers.ts +380 -173
- package/src/api/core/mode/index.ts +19 -7
- package/src/api/core/proposals/index.ts +4 -3
- package/src/api/core/storeys/index.ts +19 -2
- package/src/api/core/storeys/layers.ts +339 -0
- package/src/api/core/tags.ts +76 -0
- package/src/api/core/zoom/index.ts +13 -0
- package/src/api/design/bim.ts +210 -0
- package/src/api/design/boolean/index.ts +2 -0
- package/src/api/design/catalog.ts +203 -0
- package/src/api/design/create/bulk-items.ts +294 -0
- package/src/api/design/create/grids.ts +137 -0
- package/src/api/design/create/index.ts +824 -141
- package/src/api/design/create/opening-fields.ts +40 -0
- package/src/api/design/delete/index.ts +6 -20
- package/src/api/design/dimensions.ts +453 -0
- package/src/api/design/doors/index.ts +64 -41
- package/src/api/design/family.ts +1342 -0
- package/src/api/design/grids.ts +237 -0
- package/src/api/design/index.ts +49 -4
- package/src/api/design/networks.ts +607 -0
- package/src/api/design/query/geometry/index.ts +35 -4
- package/src/api/design/query/grids.ts +197 -0
- package/src/api/design/query/index.ts +105 -5
- package/src/api/design/query/spaces.ts +0 -68
- package/src/api/design/types/index.ts +31 -24
- package/src/api/design/update/index.ts +398 -4
- package/src/api/design/windows/index.ts +40 -22
- package/src/api/entity/buildableEnvelope.ts +77 -2
- package/src/api/entity/referenceLine.ts +25 -12
- package/src/api/entity/space.ts +0 -2
- package/src/api/presentation/annotate.ts +90 -58
- package/src/api/presentation/camera.ts +289 -0
- package/src/api/presentation/drawingContract.ts +70 -0
- package/src/api/presentation/drawings.ts +1179 -0
- package/src/api/presentation/export.ts +32 -6
- package/src/api/presentation/graphics.ts +324 -0
- package/src/api/presentation/index.ts +73 -14
- package/src/api/presentation/placedViews.ts +120 -57
- package/src/api/presentation/sections.ts +420 -0
- package/src/api/presentation/sheets.ts +182 -37
- package/src/api/presentation/standards.ts +445 -0
- package/src/api/presentation/viewPresets.ts +241 -0
- package/src/api/presentation/views.ts +81 -10
- package/src/api/presentation/walkthroughs.ts +1201 -0
- package/src/api/program/departments.ts +54 -2
- package/src/api/program/index.ts +16 -6
- package/src/api/program/labels.ts +332 -0
- package/src/api/program/metadata.ts +364 -0
- package/src/api/program/spreadsheet.ts +282 -0
- package/src/api/workspace/index.ts +51 -2
- package/src/errors/codes.ts +9 -30
- package/src/handles.ts +42 -3
- package/src/index.ts +2 -0
- package/src/massParameters.ops.ts +246 -0
- package/src/massParameters.ts +427 -0
- package/test/drawingContract.test.mjs +288 -0
- package/test/errors.test.mjs +1 -4
- package/test/massParameters.test.mjs +952 -0
- package/test/paperPensContract.test.mjs +75 -0
- package/test/presentationViewSettings.test.mjs +85 -0
- package/api-manifest.full.json +0 -6928
- package/snaptrude-plugin-core-0.11.0.tgz +0 -0
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import * as z from "zod"
|
|
2
2
|
import { PluginApiReturn } from "../../types"
|
|
3
|
+
import {
|
|
4
|
+
PluginProgramSiteEdgeRole,
|
|
5
|
+
PluginProgramSiteEdgesEntry,
|
|
6
|
+
} from "../program/site"
|
|
3
7
|
|
|
4
8
|
/**
|
|
5
9
|
* Buildable Envelope management — create and update parametric zoning envelopes.
|
|
@@ -72,6 +76,11 @@ export abstract class PluginBuildableEnvelopeApi {
|
|
|
72
76
|
* volume from a revised site polygon, setbacks, vertical cap, or FAR and
|
|
73
77
|
* lot-coverage limits, keeping the same envelope id.
|
|
74
78
|
*
|
|
79
|
+
* Edge state is preserved, like the right panel: every edge's type
|
|
80
|
+
* (front/side/rear) is kept. For each type whose value changed (by more than
|
|
81
|
+
* 2 mm), the per-edge custom distances on edges of that type are cleared;
|
|
82
|
+
* custom distances on types whose value did not change are kept.
|
|
83
|
+
*
|
|
75
84
|
* @param buildableEnvelopeId - Existing envelope ID to update; non-empty and
|
|
76
85
|
* must match an existing envelope on the canvas.
|
|
77
86
|
* @param sitePolygon - Site polygon vertices in `lengthUnit`; minimum 3 vertices.
|
|
@@ -82,9 +91,15 @@ export abstract class PluginBuildableEnvelopeApi {
|
|
|
82
91
|
* @param farRatio - Optional FAR value, positive when provided.
|
|
83
92
|
* @param lotCoverageMaxPct - Optional lot coverage cap, `0..100`.
|
|
84
93
|
* @returns A {@linkcode PluginBuildableEnvelopeUpdateResult} with the
|
|
85
|
-
* `buildableEnvelopeId` of the updated envelope
|
|
94
|
+
* `buildableEnvelopeId` of the updated envelope and `clearedEdgeSetbacks`,
|
|
95
|
+
* the `edgeIndex` of each edge that lost its custom distance (empty when
|
|
96
|
+
* none). Tell the user about any cleared edges.
|
|
86
97
|
* @throws If validation fails, the envelope does not exist, or generation
|
|
87
|
-
* produces no renderable geometry.
|
|
98
|
+
* produces no renderable geometry. Also throws `PRECONDITION_FAILED`
|
|
99
|
+
* (`details.reason: "STALE_EDGE_SETTINGS"`, nothing changes) when the site
|
|
100
|
+
* outline changed since the edge settings were made. Tell the user;
|
|
101
|
+
* editing any edge on the canvas setback pills resets the edge settings
|
|
102
|
+
* to the new outline (dropping the old ones), after which you can retry.
|
|
88
103
|
*
|
|
89
104
|
* @examplePrompt Change the envelope's height limit to 175 feet
|
|
90
105
|
* @examplePrompt Update the setbacks on the buildable envelope
|
|
@@ -312,11 +327,71 @@ export type PluginBuildableEnvelopeUpdateArgs = z.infer<
|
|
|
312
327
|
* | Property | Type | Description |
|
|
313
328
|
* |---|---|---|
|
|
314
329
|
* | `buildableEnvelopeId` | `string` | Non-empty unique ID of the updated buildable envelope |
|
|
330
|
+
* | `clearedEdgeSetbacks` | `number[]` | `edgeIndex` of every edge whose own custom distance was cleared because its type's (front/side/rear) value changed; empty when none |
|
|
315
331
|
*/
|
|
316
332
|
export const PluginBuildableEnvelopeUpdateResult = z.object({
|
|
317
333
|
buildableEnvelopeId: z.string().min(1),
|
|
334
|
+
clearedEdgeSetbacks: z.array(z.number().int().nonnegative()),
|
|
318
335
|
}).strict()
|
|
319
336
|
|
|
320
337
|
export type PluginBuildableEnvelopeUpdateResult = z.infer<
|
|
321
338
|
typeof PluginBuildableEnvelopeUpdateResult
|
|
322
339
|
>
|
|
340
|
+
|
|
341
|
+
/**
|
|
342
|
+
* Patch for one site edge, as taken by `design.update.siteEdge`.
|
|
343
|
+
*
|
|
344
|
+
* Strict schema. Provide `role`, `setback`, or both. A numeric `setback`
|
|
345
|
+
* requires `lengthUnit`.
|
|
346
|
+
*
|
|
347
|
+
* | Property | Type | Description |
|
|
348
|
+
* |---|---|---|
|
|
349
|
+
* | `role` | `"front" \| "side" \| "rear"`? | New edge type. Setting it clears the edge's own distance |
|
|
350
|
+
* | `setback` | `number \| null`? | This edge's own setback distance in `lengthUnit` (finite, nonnegative); `null` clears it so the edge falls back to its type's distance |
|
|
351
|
+
* | `lengthUnit` | `"m" \| "ft"`? | Unit of `setback`; required when `setback` is a number |
|
|
352
|
+
*/
|
|
353
|
+
export const PluginSiteEdgePatch = z
|
|
354
|
+
.object({
|
|
355
|
+
role: PluginProgramSiteEdgeRole.optional(),
|
|
356
|
+
// null = clear this edge's own distance
|
|
357
|
+
setback: z.number().finite().nonnegative().nullable().optional(),
|
|
358
|
+
lengthUnit: z.enum(["m", "ft"]).optional(),
|
|
359
|
+
})
|
|
360
|
+
.strict()
|
|
361
|
+
.refine(
|
|
362
|
+
(p) => p.role !== undefined || p.setback !== undefined,
|
|
363
|
+
"patch must set role and/or setback"
|
|
364
|
+
)
|
|
365
|
+
.refine(
|
|
366
|
+
(p) => typeof p.setback !== "number" || p.lengthUnit !== undefined,
|
|
367
|
+
"lengthUnit is required with a numeric setback"
|
|
368
|
+
)
|
|
369
|
+
|
|
370
|
+
export type PluginSiteEdgePatch = z.infer<typeof PluginSiteEdgePatch>
|
|
371
|
+
|
|
372
|
+
/**
|
|
373
|
+
* Result of `design.update.siteEdge` — the refreshed edge entry for the
|
|
374
|
+
* site, exactly as `program.site.listEdges()` returns it.
|
|
375
|
+
*/
|
|
376
|
+
export const PluginDesignUpdateSiteEdgeResult = PluginProgramSiteEdgesEntry
|
|
377
|
+
|
|
378
|
+
export type PluginDesignUpdateSiteEdgeResult = z.infer<
|
|
379
|
+
typeof PluginDesignUpdateSiteEdgeResult
|
|
380
|
+
>
|
|
381
|
+
|
|
382
|
+
/**
|
|
383
|
+
* Result of `design.create.buildableEnvelopeFromSite`.
|
|
384
|
+
*
|
|
385
|
+
* | Property | Type | Description |
|
|
386
|
+
* |---|---|---|
|
|
387
|
+
* | `buildableEnvelopeId` | `string` | ID of the created buildable envelope |
|
|
388
|
+
*/
|
|
389
|
+
export const PluginDesignCreateBuildableEnvelopeFromSiteResult = z
|
|
390
|
+
.object({
|
|
391
|
+
buildableEnvelopeId: z.string(),
|
|
392
|
+
})
|
|
393
|
+
.strict()
|
|
394
|
+
|
|
395
|
+
export type PluginDesignCreateBuildableEnvelopeFromSiteResult = z.infer<
|
|
396
|
+
typeof PluginDesignCreateBuildableEnvelopeFromSiteResult
|
|
397
|
+
>
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as z from "zod"
|
|
2
2
|
import { PluginApiReturn } from "../../types"
|
|
3
3
|
import { ProfileHandle, CurveHandle } from "../../handles"
|
|
4
|
+
import { PluginGraphicsLineStyleId } from "../presentation/graphics"
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
7
|
* Reference line management — create, query, and delete reference lines.
|
|
@@ -53,7 +54,7 @@ export abstract class PluginReferenceLineApi {
|
|
|
53
54
|
* @deprecated Use `design.create.referenceLines`
|
|
54
55
|
*/
|
|
55
56
|
public abstract createMulti(
|
|
56
|
-
profile: ProfileHandle
|
|
57
|
+
profile: ProfileHandle,
|
|
57
58
|
): PluginApiReturn<PluginReferenceLineCreateMultiResult>
|
|
58
59
|
|
|
59
60
|
/**
|
|
@@ -85,7 +86,7 @@ export abstract class PluginReferenceLineApi {
|
|
|
85
86
|
*/
|
|
86
87
|
public abstract get(
|
|
87
88
|
referenceLineId: string,
|
|
88
|
-
properties: z.infer<typeof PluginReferenceLineGetProperty>[]
|
|
89
|
+
properties: z.infer<typeof PluginReferenceLineGetProperty>[],
|
|
89
90
|
): PluginApiReturn<PluginReferenceLineGetResult>
|
|
90
91
|
|
|
91
92
|
/**
|
|
@@ -135,7 +136,7 @@ export abstract class PluginReferenceLineApi {
|
|
|
135
136
|
* @deprecated Use `design.delete.entities`
|
|
136
137
|
*/
|
|
137
138
|
public abstract delete(
|
|
138
|
-
referenceLineId: string
|
|
139
|
+
referenceLineId: string,
|
|
139
140
|
): PluginApiReturn<PluginReferenceLineDeleteResult>
|
|
140
141
|
}
|
|
141
142
|
|
|
@@ -150,7 +151,9 @@ export const PluginReferenceLineCreateMultiArgs = z.object({
|
|
|
150
151
|
profile: ProfileHandle,
|
|
151
152
|
})
|
|
152
153
|
|
|
153
|
-
export type PluginReferenceLineCreateMultiArgs = z.infer<
|
|
154
|
+
export type PluginReferenceLineCreateMultiArgs = z.infer<
|
|
155
|
+
typeof PluginReferenceLineCreateMultiArgs
|
|
156
|
+
>
|
|
154
157
|
|
|
155
158
|
/**
|
|
156
159
|
* Result of {@linkcode PluginReferenceLineApi.createMulti}.
|
|
@@ -163,7 +166,9 @@ export const PluginReferenceLineCreateMultiResult = z.object({
|
|
|
163
166
|
referenceLineIds: z.array(z.string()),
|
|
164
167
|
})
|
|
165
168
|
|
|
166
|
-
export type PluginReferenceLineCreateMultiResult = z.infer<
|
|
169
|
+
export type PluginReferenceLineCreateMultiResult = z.infer<
|
|
170
|
+
typeof PluginReferenceLineCreateMultiResult
|
|
171
|
+
>
|
|
167
172
|
|
|
168
173
|
/**
|
|
169
174
|
* Available properties that can be queried on a reference line.
|
|
@@ -171,10 +176,9 @@ export type PluginReferenceLineCreateMultiResult = z.infer<typeof PluginReferenc
|
|
|
171
176
|
* | Value | Return Type | Description |
|
|
172
177
|
* |---|---|---|
|
|
173
178
|
* | `"curve"` | {@linkcode CurveHandle} | The curve geometry of the reference line, as an opaque handle |
|
|
179
|
+
* | `"styleId"` | `PluginGraphicsLineStyleId \| null` | Project style, or null for an unstyled legacy line |
|
|
174
180
|
*/
|
|
175
|
-
export const PluginReferenceLineGetProperty = z.enum([
|
|
176
|
-
"curve",
|
|
177
|
-
])
|
|
181
|
+
export const PluginReferenceLineGetProperty = z.enum(["curve", "styleId"])
|
|
178
182
|
|
|
179
183
|
/**
|
|
180
184
|
* Arguments for {@linkcode PluginReferenceLineApi.get}.
|
|
@@ -189,7 +193,9 @@ export const PluginReferenceLineGetArgs = z.object({
|
|
|
189
193
|
properties: z.array(PluginReferenceLineGetProperty),
|
|
190
194
|
})
|
|
191
195
|
|
|
192
|
-
export type PluginReferenceLineGetArgs = z.infer<
|
|
196
|
+
export type PluginReferenceLineGetArgs = z.infer<
|
|
197
|
+
typeof PluginReferenceLineGetArgs
|
|
198
|
+
>
|
|
193
199
|
|
|
194
200
|
/**
|
|
195
201
|
* Result of {@linkcode PluginReferenceLineApi.get}.
|
|
@@ -200,10 +206,13 @@ export type PluginReferenceLineGetArgs = z.infer<typeof PluginReferenceLineGetAr
|
|
|
200
206
|
export const PluginReferenceLineGetResult = z
|
|
201
207
|
.object({
|
|
202
208
|
curve: CurveHandle,
|
|
209
|
+
styleId: PluginGraphicsLineStyleId.nullable(),
|
|
203
210
|
})
|
|
204
211
|
.partial()
|
|
205
212
|
|
|
206
|
-
export type PluginReferenceLineGetResult = z.infer<
|
|
213
|
+
export type PluginReferenceLineGetResult = z.infer<
|
|
214
|
+
typeof PluginReferenceLineGetResult
|
|
215
|
+
>
|
|
207
216
|
|
|
208
217
|
/**
|
|
209
218
|
* Result of {@linkcode PluginReferenceLineApi.getAll}.
|
|
@@ -216,7 +225,9 @@ export const PluginReferenceLineGetAllResult = z.object({
|
|
|
216
225
|
referenceLineIds: z.array(z.string()),
|
|
217
226
|
})
|
|
218
227
|
|
|
219
|
-
export type PluginReferenceLineGetAllResult = z.infer<
|
|
228
|
+
export type PluginReferenceLineGetAllResult = z.infer<
|
|
229
|
+
typeof PluginReferenceLineGetAllResult
|
|
230
|
+
>
|
|
220
231
|
|
|
221
232
|
/**
|
|
222
233
|
* Arguments for {@linkcode PluginReferenceLineApi.delete}.
|
|
@@ -229,7 +240,9 @@ export const PluginReferenceLineDeleteArgs = z.object({
|
|
|
229
240
|
referenceLineId: z.string(),
|
|
230
241
|
})
|
|
231
242
|
|
|
232
|
-
export type PluginReferenceLineDeleteArgs = z.infer<
|
|
243
|
+
export type PluginReferenceLineDeleteArgs = z.infer<
|
|
244
|
+
typeof PluginReferenceLineDeleteArgs
|
|
245
|
+
>
|
|
233
246
|
|
|
234
247
|
/** Result type for {@linkcode PluginReferenceLineApi.delete} — returns nothing on success. */
|
|
235
248
|
export type PluginReferenceLineDeleteResult = void
|
package/src/api/entity/space.ts
CHANGED
|
@@ -434,7 +434,6 @@ export type PluginSpaceUpdateArgs = z.infer<typeof PluginSpaceUpdateArgs>
|
|
|
434
434
|
* | `massType` | `string?` | Updated mass type (if changed) |
|
|
435
435
|
* | `spaceType` | `string?` | Updated space type (if changed) |
|
|
436
436
|
* | `departmentId` | `string \| null?` | Updated department ID (if changed) |
|
|
437
|
-
* | `rebuilt` | `boolean?` | `true` when a geometry update rebuilt the space's derived BIM — hosted children were re-created and the previous derived handles are retired (re-query them) |
|
|
438
437
|
*/
|
|
439
438
|
export const PluginSpaceUpdateResult = z.object({
|
|
440
439
|
spaceId: z.string(),
|
|
@@ -443,7 +442,6 @@ export const PluginSpaceUpdateResult = z.object({
|
|
|
443
442
|
spaceType: z.string().optional(),
|
|
444
443
|
areaClass: PluginAreaClass.optional(),
|
|
445
444
|
departmentId: z.string().nullable().optional(),
|
|
446
|
-
rebuilt: z.boolean().optional(),
|
|
447
445
|
})
|
|
448
446
|
|
|
449
447
|
export type PluginSpaceUpdateResult = z.infer<typeof PluginSpaceUpdateResult>
|
|
@@ -34,14 +34,15 @@ export abstract class PluginPresentationAnnotateApi {
|
|
|
34
34
|
* falls back to regular. `fontSizePx` sets an exact pixel size, overriding
|
|
35
35
|
* the `size` preset when both are given (`size` alone keeps working).
|
|
36
36
|
*
|
|
37
|
-
* @param sheetId - The sheet to annotate.
|
|
37
|
+
* @param sheetId - The sheet to annotate, or `undefined` when `options.drawingId` is used.
|
|
38
38
|
* @param text - The label text.
|
|
39
39
|
* @param options - Optional `position` (`{ x, y }`, relative to the sheet's
|
|
40
40
|
* top-left, in canvas units — defaults to the sheet's top-left corner),
|
|
41
41
|
* `size` (`"s" | "m" | "l" | "xl"`, default `"m"`), `color` (a named
|
|
42
42
|
* palette color, default `"black"`), and typography: `fontFamily`,
|
|
43
43
|
* `fontWeight` (numeric string, `-italic` suffix allowed), `fontSizePx`
|
|
44
|
-
* (positive px size overriding the `size` preset)
|
|
44
|
+
* (positive px size overriding the `size` preset), and `drawingId` to parent
|
|
45
|
+
* the annotation to a drawing. Pass exactly one parent: `sheetId` or `drawingId`.
|
|
45
46
|
* @returns A {@linkcode PluginPresentationAnnotateTextResult} with the created
|
|
46
47
|
* `shapeId`.
|
|
47
48
|
* @throws If Present mode is not open or the sheet id is invalid.
|
|
@@ -61,7 +62,7 @@ export abstract class PluginPresentationAnnotateApi {
|
|
|
61
62
|
* ```
|
|
62
63
|
*/
|
|
63
64
|
public abstract text(
|
|
64
|
-
sheetId: string,
|
|
65
|
+
sheetId: string | undefined,
|
|
65
66
|
text: string,
|
|
66
67
|
options?: {
|
|
67
68
|
position?: { x: number; y: number }
|
|
@@ -70,6 +71,7 @@ export abstract class PluginPresentationAnnotateApi {
|
|
|
70
71
|
fontFamily?: string
|
|
71
72
|
fontWeight?: string
|
|
72
73
|
fontSizePx?: number
|
|
74
|
+
drawingId?: string
|
|
73
75
|
},
|
|
74
76
|
): PluginApiReturn<PluginPresentationAnnotateTextResult>
|
|
75
77
|
|
|
@@ -80,11 +82,12 @@ export abstract class PluginPresentationAnnotateApi {
|
|
|
80
82
|
* top-left, in canvas units — the same Arrow tool as the Present toolbar) and
|
|
81
83
|
* returns the id of the created canvas shape. Requires Present mode to be open.
|
|
82
84
|
*
|
|
83
|
-
* @param sheetId - The sheet to annotate.
|
|
85
|
+
* @param sheetId - The sheet to annotate, or `undefined` when `options.drawingId` is used.
|
|
84
86
|
* @param start - Arrow tail position (`{ x, y }`, relative to the sheet's top-left).
|
|
85
87
|
* @param end - Arrow head position (`{ x, y }`, relative to the sheet's top-left).
|
|
86
88
|
* @param options - Optional `color` (a named palette color, default `"black"`)
|
|
87
|
-
*
|
|
89
|
+
* `size` (stroke weight preset, `"s" | "m" | "l" | "xl"`, default `"m"`),
|
|
90
|
+
* and `drawingId` to parent the arrow to a drawing. Pass exactly one parent.
|
|
88
91
|
* @returns A {@linkcode PluginPresentationAnnotateResult} with the created
|
|
89
92
|
* `shapeId`.
|
|
90
93
|
* @throws If Present mode is not open or the sheet id is invalid.
|
|
@@ -104,12 +107,13 @@ export abstract class PluginPresentationAnnotateApi {
|
|
|
104
107
|
* ```
|
|
105
108
|
*/
|
|
106
109
|
public abstract arrow(
|
|
107
|
-
sheetId: string,
|
|
110
|
+
sheetId: string | undefined,
|
|
108
111
|
start: { x: number; y: number },
|
|
109
112
|
end: { x: number; y: number },
|
|
110
113
|
options?: {
|
|
111
114
|
color?: PluginAnnotateTextColor
|
|
112
115
|
size?: PluginAnnotateTextSize
|
|
116
|
+
drawingId?: string
|
|
113
117
|
},
|
|
114
118
|
): PluginApiReturn<PluginPresentationAnnotateResult>
|
|
115
119
|
|
|
@@ -120,13 +124,14 @@ export abstract class PluginPresentationAnnotateApi {
|
|
|
120
124
|
* fixed-size sticky square that grows with its text) and returns the id of
|
|
121
125
|
* the created canvas shape. Requires Present mode to be open.
|
|
122
126
|
*
|
|
123
|
-
* @param sheetId - The sheet to annotate.
|
|
127
|
+
* @param sheetId - The sheet to annotate, or `undefined` when `options.drawingId` is used.
|
|
124
128
|
* @param text - The note text.
|
|
125
129
|
* @param options - Optional `position` (`{ x, y }`, relative to the sheet's
|
|
126
130
|
* top-left, in canvas units — defaults to the sheet's top-left corner),
|
|
127
131
|
* `color` (a named palette color, default `"black"` — rendered as the
|
|
128
132
|
* note's sticky fill), and `size` (text size preset,
|
|
129
|
-
* `"s" | "m" | "l" | "xl"`, default `"m"`)
|
|
133
|
+
* `"s" | "m" | "l" | "xl"`, default `"m"`), and `drawingId` to parent
|
|
134
|
+
* the note to a drawing. Pass exactly one parent.
|
|
130
135
|
* @returns A {@linkcode PluginPresentationAnnotateResult} with the created
|
|
131
136
|
* `shapeId`.
|
|
132
137
|
* @throws If Present mode is not open or the sheet id is invalid.
|
|
@@ -145,12 +150,13 @@ export abstract class PluginPresentationAnnotateApi {
|
|
|
145
150
|
* ```
|
|
146
151
|
*/
|
|
147
152
|
public abstract note(
|
|
148
|
-
sheetId: string,
|
|
153
|
+
sheetId: string | undefined,
|
|
149
154
|
text: string,
|
|
150
155
|
options?: {
|
|
151
156
|
position?: { x: number; y: number }
|
|
152
157
|
color?: PluginAnnotateTextColor
|
|
153
158
|
size?: PluginAnnotateTextSize
|
|
159
|
+
drawingId?: string
|
|
154
160
|
},
|
|
155
161
|
): PluginApiReturn<PluginPresentationAnnotateResult>
|
|
156
162
|
|
|
@@ -162,14 +168,15 @@ export abstract class PluginPresentationAnnotateApi {
|
|
|
162
168
|
* top-left, in canvas units) and returns the id of the created canvas shape.
|
|
163
169
|
* Requires Present mode to be open.
|
|
164
170
|
*
|
|
165
|
-
* @param sheetId - The sheet to annotate.
|
|
171
|
+
* @param sheetId - The sheet to annotate, or `undefined` when `options.drawingId` is used.
|
|
166
172
|
* @param kind - The shape kind ({@linkcode PluginAnnotateGeoKind}), e.g.
|
|
167
173
|
* `"rectangle"`, `"ellipse"`, `"cloud"`.
|
|
168
174
|
* @param bounds - Placement box `{ x, y, w, h }` — `x`/`y` are the shape's
|
|
169
175
|
* top-left relative to the sheet's top-left; `w`/`h` must be positive.
|
|
170
176
|
* @param options - Optional `color` (a named palette color, default
|
|
171
177
|
* `"black"`) and `fill` ({@linkcode PluginAnnotateFill}, default `"none"` —
|
|
172
|
-
* outline only).
|
|
178
|
+
* outline only), and `drawingId` to parent the shape to a drawing. Pass
|
|
179
|
+
* exactly one parent: `sheetId` or `drawingId`.
|
|
173
180
|
* @returns A {@linkcode PluginPresentationAnnotateResult} with the created
|
|
174
181
|
* `shapeId`.
|
|
175
182
|
* @throws If Present mode is not open or the sheet id is invalid.
|
|
@@ -189,12 +196,13 @@ export abstract class PluginPresentationAnnotateApi {
|
|
|
189
196
|
* ```
|
|
190
197
|
*/
|
|
191
198
|
public abstract shape(
|
|
192
|
-
sheetId: string,
|
|
199
|
+
sheetId: string | undefined,
|
|
193
200
|
kind: PluginAnnotateGeoKind,
|
|
194
201
|
bounds: { x: number; y: number; w: number; h: number },
|
|
195
202
|
options?: {
|
|
196
203
|
color?: PluginAnnotateTextColor
|
|
197
204
|
fill?: PluginAnnotateFill
|
|
205
|
+
drawingId?: string
|
|
198
206
|
},
|
|
199
207
|
): PluginApiReturn<PluginPresentationAnnotateResult>
|
|
200
208
|
}
|
|
@@ -226,7 +234,8 @@ export type PluginAnnotateTextColor = z.infer<typeof PluginAnnotateTextColor>
|
|
|
226
234
|
*
|
|
227
235
|
* | Property | Type | Description |
|
|
228
236
|
* |---|---|---|
|
|
229
|
-
* | `sheetId` | `string` | The sheet
|
|
237
|
+
* | `sheetId` | `string \| undefined` | The sheet parent; omit when `drawingId` is set |
|
|
238
|
+
* | `drawingId` | `string \| undefined` | The drawing parent; mutually exclusive with `sheetId` |
|
|
230
239
|
* | `text` | `string` | The label text |
|
|
231
240
|
* | `position` | `{ x: number; y: number } \| undefined` | Where to place it (relative to the sheet) |
|
|
232
241
|
* | `size` | {@linkcode PluginAnnotateTextSize}` \| undefined` | Text size preset |
|
|
@@ -235,22 +244,27 @@ export type PluginAnnotateTextColor = z.infer<typeof PluginAnnotateTextColor>
|
|
|
235
244
|
* | `fontWeight` | `string \| undefined` | Numeric weight like `"400"`/`"700"`, `-italic` suffix allowed |
|
|
236
245
|
* | `fontSizePx` | `number \| undefined` | Exact px size (overrides the `size` preset) |
|
|
237
246
|
*/
|
|
238
|
-
export const PluginPresentationAnnotateTextArgs = z
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
.string()
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
247
|
+
export const PluginPresentationAnnotateTextArgs = z
|
|
248
|
+
.object({
|
|
249
|
+
sheetId: z.string().min(1).optional(),
|
|
250
|
+
drawingId: z.string().min(1).optional(),
|
|
251
|
+
text: z.string(),
|
|
252
|
+
position: z.object({ x: z.number(), y: z.number() }).optional(),
|
|
253
|
+
size: PluginAnnotateTextSize.optional(),
|
|
254
|
+
color: PluginAnnotateTextColor.optional(),
|
|
255
|
+
fontFamily: z.string().min(1).optional(),
|
|
256
|
+
fontWeight: z
|
|
257
|
+
.string()
|
|
258
|
+
.regex(
|
|
259
|
+
/^\d{3}(-italic)?$/,
|
|
260
|
+
'fontWeight must be a numeric string like "400" or "700", optionally with the "-italic" suffix',
|
|
261
|
+
)
|
|
262
|
+
.optional(),
|
|
263
|
+
fontSizePx: z.number().finite().positive().optional(),
|
|
264
|
+
})
|
|
265
|
+
.refine(({ sheetId, drawingId }) => Boolean(sheetId) !== Boolean(drawingId), {
|
|
266
|
+
message: "exactly one of sheetId or drawingId is required",
|
|
267
|
+
})
|
|
254
268
|
export type PluginPresentationAnnotateTextArgs = z.infer<
|
|
255
269
|
typeof PluginPresentationAnnotateTextArgs
|
|
256
270
|
>
|
|
@@ -302,19 +316,25 @@ export type PluginAnnotateFill = z.infer<typeof PluginAnnotateFill>
|
|
|
302
316
|
*
|
|
303
317
|
* | Property | Type | Description |
|
|
304
318
|
* |---|---|---|
|
|
305
|
-
* | `sheetId` | `string` | The sheet
|
|
319
|
+
* | `sheetId` | `string \| undefined` | The sheet parent; omit when `drawingId` is set |
|
|
320
|
+
* | `drawingId` | `string \| undefined` | The drawing parent; mutually exclusive with `sheetId` |
|
|
306
321
|
* | `start` | `{ x: number; y: number }` | Arrow tail (relative to the sheet) |
|
|
307
322
|
* | `end` | `{ x: number; y: number }` | Arrow head (relative to the sheet) |
|
|
308
323
|
* | `color` | {@linkcode PluginAnnotateTextColor}` \| undefined` | Arrow color |
|
|
309
324
|
* | `size` | {@linkcode PluginAnnotateTextSize}` \| undefined` | Stroke weight preset |
|
|
310
325
|
*/
|
|
311
|
-
export const PluginPresentationAnnotateArrowArgs = z
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
326
|
+
export const PluginPresentationAnnotateArrowArgs = z
|
|
327
|
+
.object({
|
|
328
|
+
sheetId: z.string().min(1).optional(),
|
|
329
|
+
drawingId: z.string().min(1).optional(),
|
|
330
|
+
start: z.object({ x: z.number(), y: z.number() }),
|
|
331
|
+
end: z.object({ x: z.number(), y: z.number() }),
|
|
332
|
+
color: PluginAnnotateTextColor.optional(),
|
|
333
|
+
size: PluginAnnotateTextSize.optional(),
|
|
334
|
+
})
|
|
335
|
+
.refine(({ sheetId, drawingId }) => Boolean(sheetId) !== Boolean(drawingId), {
|
|
336
|
+
message: "exactly one of sheetId or drawingId is required",
|
|
337
|
+
})
|
|
318
338
|
export type PluginPresentationAnnotateArrowArgs = z.infer<
|
|
319
339
|
typeof PluginPresentationAnnotateArrowArgs
|
|
320
340
|
>
|
|
@@ -324,19 +344,25 @@ export type PluginPresentationAnnotateArrowArgs = z.infer<
|
|
|
324
344
|
*
|
|
325
345
|
* | Property | Type | Description |
|
|
326
346
|
* |---|---|---|
|
|
327
|
-
* | `sheetId` | `string` | The sheet
|
|
347
|
+
* | `sheetId` | `string \| undefined` | The sheet parent; omit when `drawingId` is set |
|
|
348
|
+
* | `drawingId` | `string \| undefined` | The drawing parent; mutually exclusive with `sheetId` |
|
|
328
349
|
* | `text` | `string` | The note text |
|
|
329
350
|
* | `position` | `{ x: number; y: number } \| undefined` | Where to place it (relative to the sheet) |
|
|
330
351
|
* | `color` | {@linkcode PluginAnnotateTextColor}` \| undefined` | Sticky fill color |
|
|
331
352
|
* | `size` | {@linkcode PluginAnnotateTextSize}` \| undefined` | Text size preset |
|
|
332
353
|
*/
|
|
333
|
-
export const PluginPresentationAnnotateNoteArgs = z
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
354
|
+
export const PluginPresentationAnnotateNoteArgs = z
|
|
355
|
+
.object({
|
|
356
|
+
sheetId: z.string().min(1).optional(),
|
|
357
|
+
drawingId: z.string().min(1).optional(),
|
|
358
|
+
text: z.string(),
|
|
359
|
+
position: z.object({ x: z.number(), y: z.number() }).optional(),
|
|
360
|
+
color: PluginAnnotateTextColor.optional(),
|
|
361
|
+
size: PluginAnnotateTextSize.optional(),
|
|
362
|
+
})
|
|
363
|
+
.refine(({ sheetId, drawingId }) => Boolean(sheetId) !== Boolean(drawingId), {
|
|
364
|
+
message: "exactly one of sheetId or drawingId is required",
|
|
365
|
+
})
|
|
340
366
|
export type PluginPresentationAnnotateNoteArgs = z.infer<
|
|
341
367
|
typeof PluginPresentationAnnotateNoteArgs
|
|
342
368
|
>
|
|
@@ -346,24 +372,30 @@ export type PluginPresentationAnnotateNoteArgs = z.infer<
|
|
|
346
372
|
*
|
|
347
373
|
* | Property | Type | Description |
|
|
348
374
|
* |---|---|---|
|
|
349
|
-
* | `sheetId` | `string` | The sheet
|
|
375
|
+
* | `sheetId` | `string \| undefined` | The sheet parent; omit when `drawingId` is set |
|
|
376
|
+
* | `drawingId` | `string \| undefined` | The drawing parent; mutually exclusive with `sheetId` |
|
|
350
377
|
* | `kind` | {@linkcode PluginAnnotateGeoKind} | The shape kind |
|
|
351
378
|
* | `bounds` | `{ x: number; y: number; w: number; h: number }` | Placement box (relative to the sheet; `w`/`h` positive) |
|
|
352
379
|
* | `color` | {@linkcode PluginAnnotateTextColor}` \| undefined` | Outline color |
|
|
353
380
|
* | `fill` | {@linkcode PluginAnnotateFill}` \| undefined` | Fill style |
|
|
354
381
|
*/
|
|
355
|
-
export const PluginPresentationAnnotateShapeArgs = z
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
382
|
+
export const PluginPresentationAnnotateShapeArgs = z
|
|
383
|
+
.object({
|
|
384
|
+
sheetId: z.string().min(1).optional(),
|
|
385
|
+
drawingId: z.string().min(1).optional(),
|
|
386
|
+
kind: PluginAnnotateGeoKind,
|
|
387
|
+
bounds: z.object({
|
|
388
|
+
x: z.number(),
|
|
389
|
+
y: z.number(),
|
|
390
|
+
w: z.number().positive(),
|
|
391
|
+
h: z.number().positive(),
|
|
392
|
+
}),
|
|
393
|
+
color: PluginAnnotateTextColor.optional(),
|
|
394
|
+
fill: PluginAnnotateFill.optional(),
|
|
395
|
+
})
|
|
396
|
+
.refine(({ sheetId, drawingId }) => Boolean(sheetId) !== Boolean(drawingId), {
|
|
397
|
+
message: "exactly one of sheetId or drawingId is required",
|
|
398
|
+
})
|
|
367
399
|
export type PluginPresentationAnnotateShapeArgs = z.infer<
|
|
368
400
|
typeof PluginPresentationAnnotateShapeArgs
|
|
369
401
|
>
|