@snaptrude/plugin-core 0.0.0-bimsvg-20260928124803
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +231 -0
- package/CHANGELOG.md +341 -0
- package/CLAUDE.md +11 -0
- package/api-manifest.json +9120 -0
- package/dist/api/analysis/daylight.d.ts +603 -0
- package/dist/api/analysis/daylight.d.ts.map +1 -0
- package/dist/api/analysis/heatmaps.d.ts +658 -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 +59 -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/solar.d.ts +249 -0
- package/dist/api/analysis/solar.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/analysis/weather.d.ts +193 -0
- package/dist/api/analysis/weather.d.ts.map +1 -0
- package/dist/api/core/buildings.d.ts +427 -0
- package/dist/api/core/buildings.d.ts.map +1 -0
- package/dist/api/core/camera/index.d.ts +261 -0
- package/dist/api/core/camera/index.d.ts.map +1 -0
- package/dist/api/core/comment/index.d.ts +333 -0
- package/dist/api/core/comment/index.d.ts.map +1 -0
- package/dist/api/core/geom/create/index.d.ts +1073 -0
- package/dist/api/core/geom/create/index.d.ts.map +1 -0
- package/dist/api/core/geom/delete/index.d.ts +78 -0
- package/dist/api/core/geom/delete/index.d.ts.map +1 -0
- package/dist/api/core/geom/index.d.ts +33 -0
- package/dist/api/core/geom/index.d.ts.map +1 -0
- package/dist/api/core/geom/query/arc.d.ts +169 -0
- package/dist/api/core/geom/query/arc.d.ts.map +1 -0
- package/dist/api/core/geom/query/brep.d.ts +514 -0
- package/dist/api/core/geom/query/brep.d.ts.map +1 -0
- package/dist/api/core/geom/query/circle.d.ts +378 -0
- package/dist/api/core/geom/query/circle.d.ts.map +1 -0
- package/dist/api/core/geom/query/contour.d.ts +450 -0
- package/dist/api/core/geom/query/contour.d.ts.map +1 -0
- package/dist/api/core/geom/query/curve.d.ts +918 -0
- package/dist/api/core/geom/query/curve.d.ts.map +1 -0
- package/dist/api/core/geom/query/edge.d.ts +128 -0
- package/dist/api/core/geom/query/edge.d.ts.map +1 -0
- package/dist/api/core/geom/query/face.d.ts +363 -0
- package/dist/api/core/geom/query/face.d.ts.map +1 -0
- package/dist/api/core/geom/query/halfedge.d.ts +206 -0
- package/dist/api/core/geom/query/halfedge.d.ts.map +1 -0
- package/dist/api/core/geom/query/index.d.ts +61 -0
- package/dist/api/core/geom/query/index.d.ts.map +1 -0
- package/dist/api/core/geom/query/profile.d.ts +410 -0
- package/dist/api/core/geom/query/profile.d.ts.map +1 -0
- package/dist/api/core/geom/query/vertex.d.ts +187 -0
- package/dist/api/core/geom/query/vertex.d.ts.map +1 -0
- package/dist/api/core/geom/update/contour.d.ts +272 -0
- package/dist/api/core/geom/update/contour.d.ts.map +1 -0
- package/dist/api/core/geom/update/curve.d.ts +180 -0
- package/dist/api/core/geom/update/curve.d.ts.map +1 -0
- package/dist/api/core/geom/update/index.d.ts +27 -0
- package/dist/api/core/geom/update/index.d.ts.map +1 -0
- package/dist/api/core/geom/update/profile.d.ts +329 -0
- package/dist/api/core/geom/update/profile.d.ts.map +1 -0
- package/dist/api/core/groups.d.ts +485 -0
- package/dist/api/core/groups.d.ts.map +1 -0
- package/dist/api/core/handles/index.d.ts +210 -0
- package/dist/api/core/handles/index.d.ts.map +1 -0
- package/dist/api/core/history/index.d.ts +78 -0
- package/dist/api/core/history/index.d.ts.map +1 -0
- package/dist/api/core/index.d.ts +97 -0
- package/dist/api/core/index.d.ts.map +1 -0
- package/dist/api/core/io/export/index.d.ts +134 -0
- package/dist/api/core/io/export/index.d.ts.map +1 -0
- package/dist/api/core/io/import/index.d.ts +455 -0
- package/dist/api/core/io/import/index.d.ts.map +1 -0
- package/dist/api/core/io/index.d.ts +40 -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 +341 -0
- package/dist/api/core/io/terrain/index.d.ts.map +1 -0
- package/dist/api/core/io/underlay/index.d.ts +805 -0
- package/dist/api/core/io/underlay/index.d.ts.map +1 -0
- package/dist/api/core/layers.d.ts +402 -0
- package/dist/api/core/layers.d.ts.map +1 -0
- package/dist/api/core/math/index.d.ts +18 -0
- package/dist/api/core/math/index.d.ts.map +1 -0
- package/dist/api/core/math/quat.d.ts +170 -0
- package/dist/api/core/math/quat.d.ts.map +1 -0
- package/dist/api/core/math/vec3.d.ts +174 -0
- package/dist/api/core/math/vec3.d.ts.map +1 -0
- package/dist/api/core/mode/index.d.ts +111 -0
- package/dist/api/core/mode/index.d.ts.map +1 -0
- package/dist/api/core/project/index.d.ts +466 -0
- package/dist/api/core/project/index.d.ts.map +1 -0
- package/dist/api/core/proposals/index.d.ts +531 -0
- package/dist/api/core/proposals/index.d.ts.map +1 -0
- package/dist/api/core/storeys/index.d.ts +265 -0
- package/dist/api/core/storeys/index.d.ts.map +1 -0
- package/dist/api/core/tags.d.ts +860 -0
- package/dist/api/core/tags.d.ts.map +1 -0
- package/dist/api/core/units/index.d.ts +175 -0
- package/dist/api/core/units/index.d.ts.map +1 -0
- package/dist/api/core/user.d.ts +44 -0
- package/dist/api/core/user.d.ts.map +1 -0
- package/dist/api/core/zoom/index.d.ts +49 -0
- package/dist/api/core/zoom/index.d.ts.map +1 -0
- package/dist/api/design/boolean/index.d.ts +168 -0
- package/dist/api/design/boolean/index.d.ts.map +1 -0
- package/dist/api/design/create/bulk-items.d.ts +185 -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 +1747 -0
- package/dist/api/design/create/index.d.ts.map +1 -0
- package/dist/api/design/create/opening-fields.d.ts +37 -0
- package/dist/api/design/create/opening-fields.d.ts.map +1 -0
- package/dist/api/design/delete/index.d.ts +70 -0
- package/dist/api/design/delete/index.d.ts.map +1 -0
- 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 +470 -0
- package/dist/api/design/doors/index.d.ts.map +1 -0
- package/dist/api/design/edit/index.d.ts +49 -0
- package/dist/api/design/edit/index.d.ts.map +1 -0
- package/dist/api/design/erase/index.d.ts +160 -0
- package/dist/api/design/erase/index.d.ts.map +1 -0
- package/dist/api/design/family.d.ts +611 -0
- package/dist/api/design/family.d.ts.map +1 -0
- package/dist/api/design/furniture/index.d.ts +296 -0
- package/dist/api/design/furniture/index.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 +260 -0
- package/dist/api/design/index.d.ts.map +1 -0
- package/dist/api/design/lock.d.ts +67 -0
- package/dist/api/design/lock.d.ts.map +1 -0
- package/dist/api/design/materials/index.d.ts +551 -0
- package/dist/api/design/materials/index.d.ts.map +1 -0
- package/dist/api/design/query/geometry/index.d.ts +252 -0
- package/dist/api/design/query/geometry/index.d.ts.map +1 -0
- 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 +1318 -0
- package/dist/api/design/query/index.d.ts.map +1 -0
- package/dist/api/design/query/referenceLines.d.ts +45 -0
- package/dist/api/design/query/referenceLines.d.ts.map +1 -0
- package/dist/api/design/query/spaces.d.ts +394 -0
- package/dist/api/design/query/spaces.d.ts.map +1 -0
- package/dist/api/design/selection/index.d.ts +282 -0
- package/dist/api/design/selection/index.d.ts.map +1 -0
- package/dist/api/design/shared.d.ts +38 -0
- package/dist/api/design/shared.d.ts.map +1 -0
- package/dist/api/design/transform/index.d.ts +249 -0
- package/dist/api/design/transform/index.d.ts.map +1 -0
- package/dist/api/design/types/index.d.ts +181 -0
- package/dist/api/design/types/index.d.ts.map +1 -0
- package/dist/api/design/update/index.d.ts +803 -0
- package/dist/api/design/update/index.d.ts.map +1 -0
- package/dist/api/design/visibility.d.ts +126 -0
- package/dist/api/design/visibility.d.ts.map +1 -0
- package/dist/api/design/windows/index.d.ts +300 -0
- package/dist/api/design/windows/index.d.ts.map +1 -0
- package/dist/api/entity/buildableEnvelope.d.ts +265 -0
- package/dist/api/entity/buildableEnvelope.d.ts.map +1 -0
- package/dist/api/entity/department.d.ts +1 -0
- package/dist/api/entity/department.d.ts.map +1 -0
- package/dist/api/entity/index.d.ts +28 -0
- package/dist/api/entity/index.d.ts.map +1 -0
- package/dist/api/entity/referenceLine.d.ts +210 -0
- package/dist/api/entity/referenceLine.d.ts.map +1 -0
- package/dist/api/entity/space.d.ts +846 -0
- package/dist/api/entity/space.d.ts.map +1 -0
- package/dist/api/entity/story.d.ts +476 -0
- package/dist/api/entity/story.d.ts.map +1 -0
- package/dist/api/index.d.ts +45 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/presentation/aiInspiration.d.ts +2400 -0
- package/dist/api/presentation/aiInspiration.d.ts.map +1 -0
- package/dist/api/presentation/annotate.d.ts +483 -0
- package/dist/api/presentation/annotate.d.ts.map +1 -0
- package/dist/api/presentation/diagrams.d.ts +184 -0
- package/dist/api/presentation/diagrams.d.ts.map +1 -0
- package/dist/api/presentation/drawings.d.ts +2900 -0
- package/dist/api/presentation/drawings.d.ts.map +1 -0
- package/dist/api/presentation/export.d.ts +126 -0
- package/dist/api/presentation/export.d.ts.map +1 -0
- package/dist/api/presentation/import.d.ts +164 -0
- package/dist/api/presentation/import.d.ts.map +1 -0
- package/dist/api/presentation/index.d.ts +114 -0
- package/dist/api/presentation/index.d.ts.map +1 -0
- package/dist/api/presentation/placedViews.d.ts +1232 -0
- package/dist/api/presentation/placedViews.d.ts.map +1 -0
- package/dist/api/presentation/shapes.d.ts +481 -0
- package/dist/api/presentation/shapes.d.ts.map +1 -0
- package/dist/api/presentation/sheets.d.ts +643 -0
- package/dist/api/presentation/sheets.d.ts.map +1 -0
- package/dist/api/presentation/slideshow.d.ts +125 -0
- package/dist/api/presentation/slideshow.d.ts.map +1 -0
- package/dist/api/presentation/tables.d.ts +81 -0
- package/dist/api/presentation/tables.d.ts.map +1 -0
- package/dist/api/presentation/viewPresets.d.ts +70 -0
- package/dist/api/presentation/viewPresets.d.ts.map +1 -0
- package/dist/api/presentation/views.d.ts +741 -0
- package/dist/api/presentation/views.d.ts.map +1 -0
- package/dist/api/program/adjacency.d.ts +155 -0
- package/dist/api/program/adjacency.d.ts.map +1 -0
- package/dist/api/program/areas.d.ts +450 -0
- package/dist/api/program/areas.d.ts.map +1 -0
- package/dist/api/program/classification.d.ts +135 -0
- package/dist/api/program/classification.d.ts.map +1 -0
- package/dist/api/program/cores.d.ts +78 -0
- package/dist/api/program/cores.d.ts.map +1 -0
- package/dist/api/program/departments.d.ts +487 -0
- package/dist/api/program/departments.d.ts.map +1 -0
- package/dist/api/program/index.d.ts +71 -0
- package/dist/api/program/index.d.ts.map +1 -0
- package/dist/api/program/labels.d.ts +355 -0
- package/dist/api/program/labels.d.ts.map +1 -0
- package/dist/api/program/layout.d.ts +398 -0
- package/dist/api/program/layout.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/metrics.d.ts +108 -0
- package/dist/api/program/metrics.d.ts.map +1 -0
- package/dist/api/program/site.d.ts +823 -0
- package/dist/api/program/site.d.ts.map +1 -0
- package/dist/api/program/spreadsheet.d.ts +2628 -0
- package/dist/api/program/spreadsheet.d.ts.map +1 -0
- package/dist/api/workspace/index.d.ts +552 -0
- package/dist/api/workspace/index.d.ts.map +1 -0
- package/dist/errors/codes.d.ts +34 -0
- package/dist/errors/codes.d.ts.map +1 -0
- package/dist/errors/envelope.d.ts +56 -0
- package/dist/errors/envelope.d.ts.map +1 -0
- package/dist/errors/index.d.ts +6 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/plugin-error.d.ts +69 -0
- package/dist/errors/plugin-error.d.ts.map +1 -0
- package/dist/handles.d.ts +229 -0
- package/dist/handles.d.ts.map +1 -0
- package/dist/host-utils.d.ts +47 -0
- package/dist/host-utils.d.ts.map +1 -0
- package/dist/index.cjs +8836 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7568 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +16 -0
- package/dist/types.d.ts.map +1 -0
- package/package.json +41 -0
- package/scripts/generate-manifest.mjs +238 -0
- package/scripts/generate-manifest.test.mjs +292 -0
- package/src/api/analysis/daylight.ts +470 -0
- package/src/api/analysis/heatmaps.ts +683 -0
- package/src/api/analysis/illuminance.ts +155 -0
- package/src/api/analysis/index.ts +61 -0
- package/src/api/analysis/shadows.ts +183 -0
- package/src/api/analysis/solar.ts +237 -0
- package/src/api/analysis/sunlightHours.ts +211 -0
- package/src/api/analysis/sunpath.ts +83 -0
- package/src/api/analysis/weather.ts +179 -0
- package/src/api/core/buildings.ts +485 -0
- package/src/api/core/camera/index.ts +268 -0
- package/src/api/core/comment/index.ts +376 -0
- package/src/api/core/geom/create/index.ts +1204 -0
- package/src/api/core/geom/delete/index.ts +84 -0
- package/src/api/core/geom/index.ts +35 -0
- package/src/api/core/geom/query/arc.ts +169 -0
- package/src/api/core/geom/query/brep.ts +563 -0
- package/src/api/core/geom/query/circle.ts +404 -0
- package/src/api/core/geom/query/contour.ts +540 -0
- package/src/api/core/geom/query/curve.ts +1078 -0
- package/src/api/core/geom/query/edge.ts +130 -0
- package/src/api/core/geom/query/face.ts +403 -0
- package/src/api/core/geom/query/halfedge.ts +210 -0
- package/src/api/core/geom/query/index.ts +63 -0
- package/src/api/core/geom/query/profile.ts +473 -0
- package/src/api/core/geom/query/vertex.ts +205 -0
- package/src/api/core/geom/update/contour.ts +315 -0
- package/src/api/core/geom/update/curve.ts +209 -0
- package/src/api/core/geom/update/index.ts +29 -0
- package/src/api/core/geom/update/profile.ts +377 -0
- package/src/api/core/groups.ts +521 -0
- package/src/api/core/handles/index.ts +233 -0
- package/src/api/core/history/index.ts +84 -0
- package/src/api/core/index.ts +99 -0
- package/src/api/core/io/export/index.ts +126 -0
- package/src/api/core/io/import/index.ts +504 -0
- package/src/api/core/io/index.ts +42 -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 +360 -0
- package/src/api/core/io/underlay/index.ts +705 -0
- package/src/api/core/layers.ts +333 -0
- package/src/api/core/math/index.ts +20 -0
- package/src/api/core/math/quat.ts +172 -0
- package/src/api/core/math/vec3.ts +179 -0
- package/src/api/core/mode/index.ts +108 -0
- package/src/api/core/project/index.ts +479 -0
- package/src/api/core/proposals/index.ts +569 -0
- package/src/api/core/storeys/index.ts +294 -0
- package/src/api/core/tags.ts +911 -0
- package/src/api/core/units/index.ts +164 -0
- package/src/api/core/user.ts +46 -0
- package/src/api/core/zoom/index.ts +51 -0
- package/src/api/design/boolean/index.ts +179 -0
- package/src/api/design/create/bulk-items.ts +186 -0
- package/src/api/design/create/grids.ts +137 -0
- package/src/api/design/create/index.ts +1954 -0
- package/src/api/design/create/opening-fields.ts +37 -0
- package/src/api/design/delete/index.ts +74 -0
- package/src/api/design/dimensions.ts +453 -0
- package/src/api/design/doors/index.ts +500 -0
- package/src/api/design/edit/index.ts +54 -0
- package/src/api/design/erase/index.ts +151 -0
- package/src/api/design/family.ts +646 -0
- package/src/api/design/furniture/index.ts +319 -0
- package/src/api/design/grids.ts +237 -0
- package/src/api/design/index.ts +274 -0
- package/src/api/design/lock.ts +69 -0
- package/src/api/design/materials/index.ts +608 -0
- package/src/api/design/query/geometry/index.ts +288 -0
- package/src/api/design/query/grids.ts +197 -0
- package/src/api/design/query/index.ts +1176 -0
- package/src/api/design/query/referenceLines.ts +52 -0
- package/src/api/design/query/spaces.ts +275 -0
- package/src/api/design/selection/index.ts +273 -0
- package/src/api/design/shared.ts +40 -0
- package/src/api/design/transform/index.ts +254 -0
- package/src/api/design/types/index.ts +156 -0
- package/src/api/design/update/index.ts +798 -0
- package/src/api/design/visibility.ts +143 -0
- package/src/api/design/windows/index.ts +333 -0
- package/src/api/entity/buildableEnvelope.ts +322 -0
- package/src/api/entity/department.ts +0 -0
- package/src/api/entity/index.ts +30 -0
- package/src/api/entity/referenceLine.ts +235 -0
- package/src/api/entity/space.ts +612 -0
- package/src/api/entity/story.ts +517 -0
- package/src/api/index.ts +47 -0
- package/src/api/presentation/aiInspiration.ts +1116 -0
- package/src/api/presentation/annotate.ts +417 -0
- package/src/api/presentation/diagrams.ts +194 -0
- package/src/api/presentation/drawings.ts +529 -0
- package/src/api/presentation/export.ts +133 -0
- package/src/api/presentation/import.ts +159 -0
- package/src/api/presentation/index.ts +129 -0
- package/src/api/presentation/placedViews.ts +1203 -0
- package/src/api/presentation/shapes.ts +274 -0
- package/src/api/presentation/sheets.ts +616 -0
- package/src/api/presentation/slideshow.ts +134 -0
- package/src/api/presentation/tables.ts +84 -0
- package/src/api/presentation/viewPresets.ts +83 -0
- package/src/api/presentation/views.ts +698 -0
- package/src/api/program/adjacency.ts +164 -0
- package/src/api/program/areas.ts +408 -0
- package/src/api/program/classification.ts +138 -0
- package/src/api/program/cores.ts +83 -0
- package/src/api/program/departments.ts +517 -0
- package/src/api/program/index.ts +73 -0
- package/src/api/program/labels.ts +332 -0
- package/src/api/program/layout.ts +422 -0
- package/src/api/program/metadata.ts +364 -0
- package/src/api/program/metrics.ts +120 -0
- package/src/api/program/site.ts +748 -0
- package/src/api/program/spreadsheet.ts +2698 -0
- package/src/api/workspace/index.ts +612 -0
- package/src/errors/codes.ts +136 -0
- package/src/errors/envelope.ts +75 -0
- package/src/errors/index.ts +21 -0
- package/src/errors/plugin-error.ts +134 -0
- package/src/handles.ts +282 -0
- package/src/host-utils.ts +68 -0
- package/src/index.ts +5 -0
- package/src/types.ts +16 -0
- package/test/errors.test.mjs +184 -0
- package/tsconfig.json +22 -0
- package/tsup.config.ts +12 -0
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
import { PluginApiReturn } from "../../types"
|
|
2
|
+
import { ComponentHandle } from "../../handles"
|
|
3
|
+
import { PluginDesignCreateApi } from "./create"
|
|
4
|
+
import { PluginDesignQueryApi } from "./query"
|
|
5
|
+
import { PluginDesignSelectionApi } from "./selection"
|
|
6
|
+
import { PluginDesignDoorsApi } from "./doors"
|
|
7
|
+
import { PluginDesignWindowsApi } from "./windows"
|
|
8
|
+
import { PluginDesignFurnitureApi } from "./furniture"
|
|
9
|
+
import { PluginDesignMaterialsApi } from "./materials"
|
|
10
|
+
import { PluginDesignEraseApi } from "./erase"
|
|
11
|
+
import { PluginDesignDeleteApi } from "./delete"
|
|
12
|
+
import { PluginDesignBooleanApi } from "./boolean"
|
|
13
|
+
import { PluginDesignTransformApi } from "./transform"
|
|
14
|
+
import { PluginDesignEditApi } from "./edit"
|
|
15
|
+
import { PluginDesignUpdateApi } from "./update"
|
|
16
|
+
import { PluginDesignVisibilityApi } from "./visibility"
|
|
17
|
+
import { PluginDesignDimensionsApi } from "./dimensions"
|
|
18
|
+
import { PluginDesignTypesApi } from "./types"
|
|
19
|
+
import { PluginDesignFamilyApi } from "./family"
|
|
20
|
+
import { PluginDesignGridsApi } from "./grids"
|
|
21
|
+
import { PluginDesignChangeResult } from "./lock"
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* `snaptrude.design.*` — author, query & edit BIM geometry.
|
|
25
|
+
*
|
|
26
|
+
* - {@linkcode PluginDesignApi.create} — new BIM entities
|
|
27
|
+
* - {@linkcode PluginDesignApi.query} — read entities + their geometry
|
|
28
|
+
* - {@linkcode PluginDesignApi.selection} — read/mutate the scene selection
|
|
29
|
+
* - {@linkcode PluginDesignApi.doors} / {@linkcode PluginDesignApi.windows} — fenestration reads + edits
|
|
30
|
+
* - {@linkcode PluginDesignApi.furniture} — furniture catalog reads
|
|
31
|
+
* - {@linkcode PluginDesignApi.materials} — material library + assignment
|
|
32
|
+
* - {@linkcode PluginDesignApi.boolean} — CSG boolean ops (union / subtract / intersect)
|
|
33
|
+
* - {@linkcode PluginDesignApi.erase} — plan-level adjacency-edge erase (NOT hard delete)
|
|
34
|
+
* - {@linkcode PluginDesignApi.delete} — hard entity removal
|
|
35
|
+
* - {@linkcode PluginDesignApi.visibility} — hide / isolate / reveal entities
|
|
36
|
+
* - {@linkcode PluginDesignApi.dimensions} — dimension lines (Measuring Tape): create / list / delete / hide
|
|
37
|
+
* - {@linkcode PluginDesignApi.types} — read-only building type / assembly reference
|
|
38
|
+
* - {@linkcode PluginDesignApi.family} — author parametric families from a JSON spec
|
|
39
|
+
* - {@linkcode PluginDesignApi.lock} / {@linkcode PluginDesignApi.unlock} / {@linkcode PluginDesignApi.isLocked} / {@linkcode PluginDesignApi.listLocked} — lock state (top-level design verbs, §2A.1)
|
|
40
|
+
* - {@linkcode PluginDesignApi.lockArea} / {@linkcode PluginDesignApi.unlockArea} / {@linkcode PluginDesignApi.isAreaLocked} / {@linkcode PluginDesignApi.listAreaLocked} — footprint-area lock for Room/Department spaces
|
|
41
|
+
*
|
|
42
|
+
* Transform and edit operation namespaces land here in later waves.
|
|
43
|
+
*/
|
|
44
|
+
export abstract class PluginDesignApi {
|
|
45
|
+
/** Author new scene-committed BIM entities. See {@linkcode PluginDesignCreateApi}. */
|
|
46
|
+
public abstract create: PluginDesignCreateApi
|
|
47
|
+
/** Read scene entities and their geometry. See {@linkcode PluginDesignQueryApi}. */
|
|
48
|
+
public abstract query: PluginDesignQueryApi
|
|
49
|
+
/** Read/mutate the current selection. See {@linkcode PluginDesignSelectionApi}. */
|
|
50
|
+
public abstract selection: PluginDesignSelectionApi
|
|
51
|
+
/** Door-specific reads + edits. See {@linkcode PluginDesignDoorsApi}. */
|
|
52
|
+
public abstract doors: PluginDesignDoorsApi
|
|
53
|
+
/** Window-specific reads. See {@linkcode PluginDesignWindowsApi}. */
|
|
54
|
+
public abstract windows: PluginDesignWindowsApi
|
|
55
|
+
/** Furniture catalog reads. See {@linkcode PluginDesignFurnitureApi}. */
|
|
56
|
+
public abstract furniture: PluginDesignFurnitureApi
|
|
57
|
+
/** Material library + assignment. See {@linkcode PluginDesignMaterialsApi}. */
|
|
58
|
+
public abstract materials: PluginDesignMaterialsApi
|
|
59
|
+
/** Plan-level adjacency-edge erase (NOT hard delete). See {@linkcode PluginDesignEraseApi}. */
|
|
60
|
+
public abstract erase: PluginDesignEraseApi
|
|
61
|
+
/** Hard entity removal. See {@linkcode PluginDesignDeleteApi}. */
|
|
62
|
+
public abstract delete: PluginDesignDeleteApi
|
|
63
|
+
/** CSG boolean ops (union / subtract / intersect). See {@linkcode PluginDesignBooleanApi}. */
|
|
64
|
+
public abstract boolean: PluginDesignBooleanApi
|
|
65
|
+
/** Rigid transforms — move / rotate. See {@linkcode PluginDesignTransformApi}. */
|
|
66
|
+
public abstract transform: PluginDesignTransformApi
|
|
67
|
+
/** Non-create geometry edits — offset-split. See {@linkcode PluginDesignEditApi}. */
|
|
68
|
+
public abstract edit: PluginDesignEditApi
|
|
69
|
+
/** Update existing entities — properties + geometry. See {@linkcode PluginDesignUpdateApi}. */
|
|
70
|
+
public abstract update: PluginDesignUpdateApi
|
|
71
|
+
/** Hide / isolate / reveal entities. See {@linkcode PluginDesignVisibilityApi}. */
|
|
72
|
+
public abstract visibility: PluginDesignVisibilityApi
|
|
73
|
+
/** Dimension lines (Measuring Tape). See {@linkcode PluginDesignDimensionsApi}. */
|
|
74
|
+
public abstract dimensions: PluginDesignDimensionsApi
|
|
75
|
+
/** Read-only building type / assembly reference. See {@linkcode PluginDesignTypesApi}. */
|
|
76
|
+
public abstract types: PluginDesignTypesApi
|
|
77
|
+
/** Author parametric families from a JSON spec. See {@linkcode PluginDesignFamilyApi}. */
|
|
78
|
+
public abstract family: PluginDesignFamilyApi
|
|
79
|
+
|
|
80
|
+
/** Structural edits on a grid's line structure. See {@linkcode PluginDesignGridsApi}. */
|
|
81
|
+
public abstract grids: PluginDesignGridsApi
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Lock entities so they cannot be edited. Undoable. Cascades to void/door/window
|
|
85
|
+
* children, stacked-wall companions, and terrain neighborhood; skips
|
|
86
|
+
* active-group members.
|
|
87
|
+
* @param components Entities to lock
|
|
88
|
+
* @returns The affected entities (post-cascade)
|
|
89
|
+
*
|
|
90
|
+
* @examplePrompt Lock the selected walls so they can't be edited
|
|
91
|
+
* @examplePrompt Freeze these masses so nobody moves them by accident
|
|
92
|
+
* @examplePrompt Lock everything on the ground floor
|
|
93
|
+
* @examplePrompt Protect this room from further changes
|
|
94
|
+
*
|
|
95
|
+
* # Example
|
|
96
|
+
* ```ts
|
|
97
|
+
* // Lock every wall on the ground storey
|
|
98
|
+
* const walls = await snaptrude.design.query.listWalls({ storeys: [1] })
|
|
99
|
+
* const { affected } = await snaptrude.design.lock(walls)
|
|
100
|
+
* // affected is post-cascade: hosted doors/windows are included
|
|
101
|
+
* ```
|
|
102
|
+
*/
|
|
103
|
+
public abstract lock(components: ComponentHandle[]): PluginApiReturn<PluginDesignChangeResult>
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Unlock previously locked entities so they can be edited again. Undoable.
|
|
107
|
+
* Paired with {@linkcode PluginDesignApi.lock}.
|
|
108
|
+
* @param components Entities to unlock
|
|
109
|
+
* @returns The affected entities
|
|
110
|
+
*
|
|
111
|
+
* @examplePrompt Unlock the selected objects
|
|
112
|
+
* @examplePrompt Make this locked wall editable again
|
|
113
|
+
* @examplePrompt Unfreeze the masses I locked earlier
|
|
114
|
+
* @examplePrompt Remove the lock from these doors
|
|
115
|
+
*
|
|
116
|
+
* # Example
|
|
117
|
+
* ```ts
|
|
118
|
+
* // Unlock everything that is explicitly locked
|
|
119
|
+
* const locked = await snaptrude.design.listLocked()
|
|
120
|
+
* const { affected } = await snaptrude.design.unlock(locked)
|
|
121
|
+
* ```
|
|
122
|
+
*/
|
|
123
|
+
public abstract unlock(components: ComponentHandle[]): PluginApiReturn<PluginDesignChangeResult>
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Test whether an entity is locked (folds group + bucket lock unless `includeInherited: false`).
|
|
127
|
+
* @param component The entity to test
|
|
128
|
+
* @param includeInherited Fold group + bucket lock (default `true`); `false` reads the own flag only
|
|
129
|
+
* @returns `true` if locked, otherwise `false`
|
|
130
|
+
*
|
|
131
|
+
* @examplePrompt Is this wall locked?
|
|
132
|
+
* @examplePrompt Check whether the selected mass is locked or editable
|
|
133
|
+
* @examplePrompt Why can't I move this object? Check if it is locked
|
|
134
|
+
* @examplePrompt Tell me if this room is locked, counting locks inherited from its group
|
|
135
|
+
*
|
|
136
|
+
* # Example
|
|
137
|
+
* ```ts
|
|
138
|
+
* const [wall] = await snaptrude.design.query.listWalls()
|
|
139
|
+
* const locked = await snaptrude.design.isLocked(wall)
|
|
140
|
+
* // Own flag only — ignore locks inherited from the group / bucket
|
|
141
|
+
* const ownLock = await snaptrude.design.isLocked(wall, false)
|
|
142
|
+
* ```
|
|
143
|
+
*/
|
|
144
|
+
public abstract isLocked(
|
|
145
|
+
component: ComponentHandle,
|
|
146
|
+
includeInherited?: boolean,
|
|
147
|
+
): PluginApiReturn<boolean>
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* List the explicitly-locked entities (excludes purely group/bucket-inherited locks).
|
|
151
|
+
* @returns The locked entities as {@linkcode ComponentHandle}`[]`
|
|
152
|
+
*
|
|
153
|
+
* @examplePrompt Which objects in the model are locked?
|
|
154
|
+
* @examplePrompt List all the locked entities in this project
|
|
155
|
+
* @examplePrompt Show everything that has been locked
|
|
156
|
+
* @examplePrompt Are there any locked walls or masses in the scene?
|
|
157
|
+
*
|
|
158
|
+
* # Example
|
|
159
|
+
* ```ts
|
|
160
|
+
* const locked = await snaptrude.design.listLocked()
|
|
161
|
+
* console.log(locked.length, "explicitly locked entities")
|
|
162
|
+
* ```
|
|
163
|
+
*/
|
|
164
|
+
public abstract listLocked(): PluginApiReturn<ComponentHandle[]>
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Lock the **footprint area** of one or more Room / Department mass spaces —
|
|
168
|
+
* geometry edits that would change the bottom-face area are then refused or
|
|
169
|
+
* auto-resized to preserve it. Distinct from {@linkcode PluginDesignApi.lock}
|
|
170
|
+
* (which freezes the whole object): this locks only the area. Cascades to the
|
|
171
|
+
* space's instances and its source mass. Undoable.
|
|
172
|
+
*
|
|
173
|
+
* Only Room / Department masses are area-lockable; any other handle throws.
|
|
174
|
+
* Requires the `area_lock` feature to be enabled — when it is off this throws.
|
|
175
|
+
*
|
|
176
|
+
* @param spaces Room / Department mass spaces to area-lock
|
|
177
|
+
* @returns The affected spaces (post-cascade, echoing the input handles)
|
|
178
|
+
*
|
|
179
|
+
* @examplePrompt Lock the floor area of the selected rooms
|
|
180
|
+
* @examplePrompt Freeze the footprint area of this department so its size can't drift
|
|
181
|
+
* @examplePrompt Area-lock every room on this storey
|
|
182
|
+
* @examplePrompt Pin the area of this space while I edit its walls
|
|
183
|
+
*
|
|
184
|
+
* # Example
|
|
185
|
+
* ```ts
|
|
186
|
+
* const rooms = await snaptrude.design.selection.get()
|
|
187
|
+
* const { affected } = await snaptrude.design.lockArea(rooms)
|
|
188
|
+
* console.log("area-locked", affected.length, "spaces")
|
|
189
|
+
* ```
|
|
190
|
+
*/
|
|
191
|
+
public abstract lockArea(spaces: ComponentHandle[]): PluginApiReturn<PluginDesignChangeResult>
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* Unlock the footprint area of previously area-locked spaces so their area can
|
|
195
|
+
* change again. Paired with {@linkcode PluginDesignApi.lockArea}; cascades to
|
|
196
|
+
* instances + source; undoable. Requires the `area_lock` feature (throws if off).
|
|
197
|
+
*
|
|
198
|
+
* @param spaces Room / Department mass spaces to area-unlock
|
|
199
|
+
* @returns The affected spaces (post-cascade)
|
|
200
|
+
*
|
|
201
|
+
* @examplePrompt Unlock the area of the selected rooms
|
|
202
|
+
* @examplePrompt Remove the footprint-area lock from this department
|
|
203
|
+
* @examplePrompt Let me resize this space again by unlocking its area
|
|
204
|
+
* @examplePrompt Area-unlock everything I locked earlier
|
|
205
|
+
*
|
|
206
|
+
* # Example
|
|
207
|
+
* ```ts
|
|
208
|
+
* const locked = await snaptrude.design.listAreaLocked()
|
|
209
|
+
* const { affected } = await snaptrude.design.unlockArea(locked)
|
|
210
|
+
* ```
|
|
211
|
+
*/
|
|
212
|
+
public abstract unlockArea(spaces: ComponentHandle[]): PluginApiReturn<PluginDesignChangeResult>
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* Test whether a space's footprint area is locked. A read — never throws;
|
|
216
|
+
* returns `false` for non-space handles and when the `area_lock` feature is off.
|
|
217
|
+
*
|
|
218
|
+
* @param space The space to test
|
|
219
|
+
* @returns `true` if the space's area is locked, otherwise `false`
|
|
220
|
+
*
|
|
221
|
+
* @examplePrompt Is the area of this room locked?
|
|
222
|
+
* @examplePrompt Check whether this department's footprint is pinned
|
|
223
|
+
* @examplePrompt Tell me if the selected space has its area locked
|
|
224
|
+
*
|
|
225
|
+
* # Example
|
|
226
|
+
* ```ts
|
|
227
|
+
* const [room] = await snaptrude.design.selection.get()
|
|
228
|
+
* const locked = await snaptrude.design.isAreaLocked(room)
|
|
229
|
+
* console.log(locked ? "area is locked" : "area is free")
|
|
230
|
+
* ```
|
|
231
|
+
*/
|
|
232
|
+
public abstract isAreaLocked(space: ComponentHandle): PluginApiReturn<boolean>
|
|
233
|
+
|
|
234
|
+
/**
|
|
235
|
+
* List the spaces whose footprint area is locked. A read — never throws; returns
|
|
236
|
+
* `[]` when the `area_lock` feature is off.
|
|
237
|
+
*
|
|
238
|
+
* @returns The area-locked spaces as {@linkcode ComponentHandle}`[]`
|
|
239
|
+
*
|
|
240
|
+
* @examplePrompt Which spaces have their area locked?
|
|
241
|
+
* @examplePrompt List every room with a locked footprint
|
|
242
|
+
* @examplePrompt Show me all the area-locked departments
|
|
243
|
+
*
|
|
244
|
+
* # Example
|
|
245
|
+
* ```ts
|
|
246
|
+
* const locked = await snaptrude.design.listAreaLocked()
|
|
247
|
+
* console.log(locked.length, "area-locked spaces")
|
|
248
|
+
* ```
|
|
249
|
+
*/
|
|
250
|
+
public abstract listAreaLocked(): PluginApiReturn<ComponentHandle[]>
|
|
251
|
+
|
|
252
|
+
constructor() {}
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
export * from "./create"
|
|
256
|
+
export * from "./query"
|
|
257
|
+
export * from "./selection"
|
|
258
|
+
export * from "./doors"
|
|
259
|
+
export * from "./windows"
|
|
260
|
+
export * from "./furniture"
|
|
261
|
+
export * from "./materials"
|
|
262
|
+
export * from "./lock"
|
|
263
|
+
export * from "./erase"
|
|
264
|
+
export * from "./delete"
|
|
265
|
+
export * from "./shared"
|
|
266
|
+
export * from "./boolean"
|
|
267
|
+
export * from "./transform"
|
|
268
|
+
export * from "./edit"
|
|
269
|
+
export * from "./update"
|
|
270
|
+
export * from "./visibility"
|
|
271
|
+
export * from "./dimensions"
|
|
272
|
+
export * from "./types"
|
|
273
|
+
export * from "./family"
|
|
274
|
+
export * from "./grids"
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import * as z from "zod"
|
|
2
|
+
import { ComponentHandle } from "../../handles"
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Shared result for scene-state change mutations (lock/unlock, selection, visibility)
|
|
6
|
+
* — echoes the handles actually affected (post-cascade for lock). Errors throw
|
|
7
|
+
* (RPC rejects); there is no `Result<>` monad in the SDK (consistent with
|
|
8
|
+
* `design.create.*` returning a handle directly).
|
|
9
|
+
*/
|
|
10
|
+
export const PluginDesignChangeResult = z.object({
|
|
11
|
+
affected: z.array(ComponentHandle),
|
|
12
|
+
})
|
|
13
|
+
export type PluginDesignChangeResult = z.infer<typeof PluginDesignChangeResult>
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Arguments for {@linkcode PluginDesignApi.lock} / {@linkcode PluginDesignApi.unlock}.
|
|
17
|
+
*
|
|
18
|
+
* | Property | Type | Description |
|
|
19
|
+
* |---|---|---|
|
|
20
|
+
* | `components` | {@linkcode ComponentHandle}`[]` | Entities to lock / unlock |
|
|
21
|
+
*/
|
|
22
|
+
export const PluginDesignLockArgs = z.object({
|
|
23
|
+
components: z.array(ComponentHandle),
|
|
24
|
+
})
|
|
25
|
+
export type PluginDesignLockArgs = z.infer<typeof PluginDesignLockArgs>
|
|
26
|
+
|
|
27
|
+
export const PluginDesignUnlockArgs = PluginDesignLockArgs
|
|
28
|
+
export type PluginDesignUnlockArgs = z.infer<typeof PluginDesignUnlockArgs>
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Arguments for {@linkcode PluginDesignApi.isLocked}.
|
|
32
|
+
*
|
|
33
|
+
* | Property | Type | Description |
|
|
34
|
+
* |---|---|---|
|
|
35
|
+
* | `component` | {@linkcode ComponentHandle} | The entity to test |
|
|
36
|
+
* | `includeInherited` | `boolean` | Fold group + bucket lock (default `true`); `false` reads the own flag only |
|
|
37
|
+
*/
|
|
38
|
+
export const PluginDesignIsLockedArgs = z.object({
|
|
39
|
+
component: ComponentHandle,
|
|
40
|
+
includeInherited: z.boolean().optional(),
|
|
41
|
+
})
|
|
42
|
+
export type PluginDesignIsLockedArgs = z.infer<typeof PluginDesignIsLockedArgs>
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Arguments for {@linkcode PluginDesignApi.lockArea} / {@linkcode PluginDesignApi.unlockArea}.
|
|
46
|
+
*
|
|
47
|
+
* | Property | Type | Description |
|
|
48
|
+
* |---|---|---|
|
|
49
|
+
* | `spaces` | {@linkcode ComponentHandle}`[]` | Room / Department mass spaces to area-lock / unlock |
|
|
50
|
+
*/
|
|
51
|
+
export const PluginDesignLockAreaArgs = z.object({
|
|
52
|
+
spaces: z.array(ComponentHandle),
|
|
53
|
+
})
|
|
54
|
+
export type PluginDesignLockAreaArgs = z.infer<typeof PluginDesignLockAreaArgs>
|
|
55
|
+
|
|
56
|
+
export const PluginDesignUnlockAreaArgs = PluginDesignLockAreaArgs
|
|
57
|
+
export type PluginDesignUnlockAreaArgs = z.infer<typeof PluginDesignUnlockAreaArgs>
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Arguments for {@linkcode PluginDesignApi.isAreaLocked}.
|
|
61
|
+
*
|
|
62
|
+
* | Property | Type | Description |
|
|
63
|
+
* |---|---|---|
|
|
64
|
+
* | `space` | {@linkcode ComponentHandle} | The space to test |
|
|
65
|
+
*/
|
|
66
|
+
export const PluginDesignIsAreaLockedArgs = z.object({
|
|
67
|
+
space: ComponentHandle,
|
|
68
|
+
})
|
|
69
|
+
export type PluginDesignIsAreaLockedArgs = z.infer<typeof PluginDesignIsAreaLockedArgs>
|