@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.
Files changed (383) hide show
  1. package/AGENTS.md +231 -0
  2. package/CHANGELOG.md +341 -0
  3. package/CLAUDE.md +11 -0
  4. package/api-manifest.json +9120 -0
  5. package/dist/api/analysis/daylight.d.ts +603 -0
  6. package/dist/api/analysis/daylight.d.ts.map +1 -0
  7. package/dist/api/analysis/heatmaps.d.ts +658 -0
  8. package/dist/api/analysis/heatmaps.d.ts.map +1 -0
  9. package/dist/api/analysis/illuminance.d.ts +145 -0
  10. package/dist/api/analysis/illuminance.d.ts.map +1 -0
  11. package/dist/api/analysis/index.d.ts +59 -0
  12. package/dist/api/analysis/index.d.ts.map +1 -0
  13. package/dist/api/analysis/shadows.d.ts +165 -0
  14. package/dist/api/analysis/shadows.d.ts.map +1 -0
  15. package/dist/api/analysis/solar.d.ts +249 -0
  16. package/dist/api/analysis/solar.d.ts.map +1 -0
  17. package/dist/api/analysis/sunlightHours.d.ts +208 -0
  18. package/dist/api/analysis/sunlightHours.d.ts.map +1 -0
  19. package/dist/api/analysis/sunpath.d.ts +80 -0
  20. package/dist/api/analysis/sunpath.d.ts.map +1 -0
  21. package/dist/api/analysis/weather.d.ts +193 -0
  22. package/dist/api/analysis/weather.d.ts.map +1 -0
  23. package/dist/api/core/buildings.d.ts +427 -0
  24. package/dist/api/core/buildings.d.ts.map +1 -0
  25. package/dist/api/core/camera/index.d.ts +261 -0
  26. package/dist/api/core/camera/index.d.ts.map +1 -0
  27. package/dist/api/core/comment/index.d.ts +333 -0
  28. package/dist/api/core/comment/index.d.ts.map +1 -0
  29. package/dist/api/core/geom/create/index.d.ts +1073 -0
  30. package/dist/api/core/geom/create/index.d.ts.map +1 -0
  31. package/dist/api/core/geom/delete/index.d.ts +78 -0
  32. package/dist/api/core/geom/delete/index.d.ts.map +1 -0
  33. package/dist/api/core/geom/index.d.ts +33 -0
  34. package/dist/api/core/geom/index.d.ts.map +1 -0
  35. package/dist/api/core/geom/query/arc.d.ts +169 -0
  36. package/dist/api/core/geom/query/arc.d.ts.map +1 -0
  37. package/dist/api/core/geom/query/brep.d.ts +514 -0
  38. package/dist/api/core/geom/query/brep.d.ts.map +1 -0
  39. package/dist/api/core/geom/query/circle.d.ts +378 -0
  40. package/dist/api/core/geom/query/circle.d.ts.map +1 -0
  41. package/dist/api/core/geom/query/contour.d.ts +450 -0
  42. package/dist/api/core/geom/query/contour.d.ts.map +1 -0
  43. package/dist/api/core/geom/query/curve.d.ts +918 -0
  44. package/dist/api/core/geom/query/curve.d.ts.map +1 -0
  45. package/dist/api/core/geom/query/edge.d.ts +128 -0
  46. package/dist/api/core/geom/query/edge.d.ts.map +1 -0
  47. package/dist/api/core/geom/query/face.d.ts +363 -0
  48. package/dist/api/core/geom/query/face.d.ts.map +1 -0
  49. package/dist/api/core/geom/query/halfedge.d.ts +206 -0
  50. package/dist/api/core/geom/query/halfedge.d.ts.map +1 -0
  51. package/dist/api/core/geom/query/index.d.ts +61 -0
  52. package/dist/api/core/geom/query/index.d.ts.map +1 -0
  53. package/dist/api/core/geom/query/profile.d.ts +410 -0
  54. package/dist/api/core/geom/query/profile.d.ts.map +1 -0
  55. package/dist/api/core/geom/query/vertex.d.ts +187 -0
  56. package/dist/api/core/geom/query/vertex.d.ts.map +1 -0
  57. package/dist/api/core/geom/update/contour.d.ts +272 -0
  58. package/dist/api/core/geom/update/contour.d.ts.map +1 -0
  59. package/dist/api/core/geom/update/curve.d.ts +180 -0
  60. package/dist/api/core/geom/update/curve.d.ts.map +1 -0
  61. package/dist/api/core/geom/update/index.d.ts +27 -0
  62. package/dist/api/core/geom/update/index.d.ts.map +1 -0
  63. package/dist/api/core/geom/update/profile.d.ts +329 -0
  64. package/dist/api/core/geom/update/profile.d.ts.map +1 -0
  65. package/dist/api/core/groups.d.ts +485 -0
  66. package/dist/api/core/groups.d.ts.map +1 -0
  67. package/dist/api/core/handles/index.d.ts +210 -0
  68. package/dist/api/core/handles/index.d.ts.map +1 -0
  69. package/dist/api/core/history/index.d.ts +78 -0
  70. package/dist/api/core/history/index.d.ts.map +1 -0
  71. package/dist/api/core/index.d.ts +97 -0
  72. package/dist/api/core/index.d.ts.map +1 -0
  73. package/dist/api/core/io/export/index.d.ts +134 -0
  74. package/dist/api/core/io/export/index.d.ts.map +1 -0
  75. package/dist/api/core/io/import/index.d.ts +455 -0
  76. package/dist/api/core/io/import/index.d.ts.map +1 -0
  77. package/dist/api/core/io/index.d.ts +40 -0
  78. package/dist/api/core/io/index.d.ts.map +1 -0
  79. package/dist/api/core/io/job/index.d.ts +139 -0
  80. package/dist/api/core/io/job/index.d.ts.map +1 -0
  81. package/dist/api/core/io/query/index.d.ts +74 -0
  82. package/dist/api/core/io/query/index.d.ts.map +1 -0
  83. package/dist/api/core/io/terrain/index.d.ts +341 -0
  84. package/dist/api/core/io/terrain/index.d.ts.map +1 -0
  85. package/dist/api/core/io/underlay/index.d.ts +805 -0
  86. package/dist/api/core/io/underlay/index.d.ts.map +1 -0
  87. package/dist/api/core/layers.d.ts +402 -0
  88. package/dist/api/core/layers.d.ts.map +1 -0
  89. package/dist/api/core/math/index.d.ts +18 -0
  90. package/dist/api/core/math/index.d.ts.map +1 -0
  91. package/dist/api/core/math/quat.d.ts +170 -0
  92. package/dist/api/core/math/quat.d.ts.map +1 -0
  93. package/dist/api/core/math/vec3.d.ts +174 -0
  94. package/dist/api/core/math/vec3.d.ts.map +1 -0
  95. package/dist/api/core/mode/index.d.ts +111 -0
  96. package/dist/api/core/mode/index.d.ts.map +1 -0
  97. package/dist/api/core/project/index.d.ts +466 -0
  98. package/dist/api/core/project/index.d.ts.map +1 -0
  99. package/dist/api/core/proposals/index.d.ts +531 -0
  100. package/dist/api/core/proposals/index.d.ts.map +1 -0
  101. package/dist/api/core/storeys/index.d.ts +265 -0
  102. package/dist/api/core/storeys/index.d.ts.map +1 -0
  103. package/dist/api/core/tags.d.ts +860 -0
  104. package/dist/api/core/tags.d.ts.map +1 -0
  105. package/dist/api/core/units/index.d.ts +175 -0
  106. package/dist/api/core/units/index.d.ts.map +1 -0
  107. package/dist/api/core/user.d.ts +44 -0
  108. package/dist/api/core/user.d.ts.map +1 -0
  109. package/dist/api/core/zoom/index.d.ts +49 -0
  110. package/dist/api/core/zoom/index.d.ts.map +1 -0
  111. package/dist/api/design/boolean/index.d.ts +168 -0
  112. package/dist/api/design/boolean/index.d.ts.map +1 -0
  113. package/dist/api/design/create/bulk-items.d.ts +185 -0
  114. package/dist/api/design/create/bulk-items.d.ts.map +1 -0
  115. package/dist/api/design/create/grids.d.ts +132 -0
  116. package/dist/api/design/create/grids.d.ts.map +1 -0
  117. package/dist/api/design/create/index.d.ts +1747 -0
  118. package/dist/api/design/create/index.d.ts.map +1 -0
  119. package/dist/api/design/create/opening-fields.d.ts +37 -0
  120. package/dist/api/design/create/opening-fields.d.ts.map +1 -0
  121. package/dist/api/design/delete/index.d.ts +70 -0
  122. package/dist/api/design/delete/index.d.ts.map +1 -0
  123. package/dist/api/design/dimensions.d.ts +427 -0
  124. package/dist/api/design/dimensions.d.ts.map +1 -0
  125. package/dist/api/design/doors/index.d.ts +470 -0
  126. package/dist/api/design/doors/index.d.ts.map +1 -0
  127. package/dist/api/design/edit/index.d.ts +49 -0
  128. package/dist/api/design/edit/index.d.ts.map +1 -0
  129. package/dist/api/design/erase/index.d.ts +160 -0
  130. package/dist/api/design/erase/index.d.ts.map +1 -0
  131. package/dist/api/design/family.d.ts +611 -0
  132. package/dist/api/design/family.d.ts.map +1 -0
  133. package/dist/api/design/furniture/index.d.ts +296 -0
  134. package/dist/api/design/furniture/index.d.ts.map +1 -0
  135. package/dist/api/design/grids.d.ts +237 -0
  136. package/dist/api/design/grids.d.ts.map +1 -0
  137. package/dist/api/design/index.d.ts +260 -0
  138. package/dist/api/design/index.d.ts.map +1 -0
  139. package/dist/api/design/lock.d.ts +67 -0
  140. package/dist/api/design/lock.d.ts.map +1 -0
  141. package/dist/api/design/materials/index.d.ts +551 -0
  142. package/dist/api/design/materials/index.d.ts.map +1 -0
  143. package/dist/api/design/query/geometry/index.d.ts +252 -0
  144. package/dist/api/design/query/geometry/index.d.ts.map +1 -0
  145. package/dist/api/design/query/grids.d.ts +287 -0
  146. package/dist/api/design/query/grids.d.ts.map +1 -0
  147. package/dist/api/design/query/index.d.ts +1318 -0
  148. package/dist/api/design/query/index.d.ts.map +1 -0
  149. package/dist/api/design/query/referenceLines.d.ts +45 -0
  150. package/dist/api/design/query/referenceLines.d.ts.map +1 -0
  151. package/dist/api/design/query/spaces.d.ts +394 -0
  152. package/dist/api/design/query/spaces.d.ts.map +1 -0
  153. package/dist/api/design/selection/index.d.ts +282 -0
  154. package/dist/api/design/selection/index.d.ts.map +1 -0
  155. package/dist/api/design/shared.d.ts +38 -0
  156. package/dist/api/design/shared.d.ts.map +1 -0
  157. package/dist/api/design/transform/index.d.ts +249 -0
  158. package/dist/api/design/transform/index.d.ts.map +1 -0
  159. package/dist/api/design/types/index.d.ts +181 -0
  160. package/dist/api/design/types/index.d.ts.map +1 -0
  161. package/dist/api/design/update/index.d.ts +803 -0
  162. package/dist/api/design/update/index.d.ts.map +1 -0
  163. package/dist/api/design/visibility.d.ts +126 -0
  164. package/dist/api/design/visibility.d.ts.map +1 -0
  165. package/dist/api/design/windows/index.d.ts +300 -0
  166. package/dist/api/design/windows/index.d.ts.map +1 -0
  167. package/dist/api/entity/buildableEnvelope.d.ts +265 -0
  168. package/dist/api/entity/buildableEnvelope.d.ts.map +1 -0
  169. package/dist/api/entity/department.d.ts +1 -0
  170. package/dist/api/entity/department.d.ts.map +1 -0
  171. package/dist/api/entity/index.d.ts +28 -0
  172. package/dist/api/entity/index.d.ts.map +1 -0
  173. package/dist/api/entity/referenceLine.d.ts +210 -0
  174. package/dist/api/entity/referenceLine.d.ts.map +1 -0
  175. package/dist/api/entity/space.d.ts +846 -0
  176. package/dist/api/entity/space.d.ts.map +1 -0
  177. package/dist/api/entity/story.d.ts +476 -0
  178. package/dist/api/entity/story.d.ts.map +1 -0
  179. package/dist/api/index.d.ts +45 -0
  180. package/dist/api/index.d.ts.map +1 -0
  181. package/dist/api/presentation/aiInspiration.d.ts +2400 -0
  182. package/dist/api/presentation/aiInspiration.d.ts.map +1 -0
  183. package/dist/api/presentation/annotate.d.ts +483 -0
  184. package/dist/api/presentation/annotate.d.ts.map +1 -0
  185. package/dist/api/presentation/diagrams.d.ts +184 -0
  186. package/dist/api/presentation/diagrams.d.ts.map +1 -0
  187. package/dist/api/presentation/drawings.d.ts +2900 -0
  188. package/dist/api/presentation/drawings.d.ts.map +1 -0
  189. package/dist/api/presentation/export.d.ts +126 -0
  190. package/dist/api/presentation/export.d.ts.map +1 -0
  191. package/dist/api/presentation/import.d.ts +164 -0
  192. package/dist/api/presentation/import.d.ts.map +1 -0
  193. package/dist/api/presentation/index.d.ts +114 -0
  194. package/dist/api/presentation/index.d.ts.map +1 -0
  195. package/dist/api/presentation/placedViews.d.ts +1232 -0
  196. package/dist/api/presentation/placedViews.d.ts.map +1 -0
  197. package/dist/api/presentation/shapes.d.ts +481 -0
  198. package/dist/api/presentation/shapes.d.ts.map +1 -0
  199. package/dist/api/presentation/sheets.d.ts +643 -0
  200. package/dist/api/presentation/sheets.d.ts.map +1 -0
  201. package/dist/api/presentation/slideshow.d.ts +125 -0
  202. package/dist/api/presentation/slideshow.d.ts.map +1 -0
  203. package/dist/api/presentation/tables.d.ts +81 -0
  204. package/dist/api/presentation/tables.d.ts.map +1 -0
  205. package/dist/api/presentation/viewPresets.d.ts +70 -0
  206. package/dist/api/presentation/viewPresets.d.ts.map +1 -0
  207. package/dist/api/presentation/views.d.ts +741 -0
  208. package/dist/api/presentation/views.d.ts.map +1 -0
  209. package/dist/api/program/adjacency.d.ts +155 -0
  210. package/dist/api/program/adjacency.d.ts.map +1 -0
  211. package/dist/api/program/areas.d.ts +450 -0
  212. package/dist/api/program/areas.d.ts.map +1 -0
  213. package/dist/api/program/classification.d.ts +135 -0
  214. package/dist/api/program/classification.d.ts.map +1 -0
  215. package/dist/api/program/cores.d.ts +78 -0
  216. package/dist/api/program/cores.d.ts.map +1 -0
  217. package/dist/api/program/departments.d.ts +487 -0
  218. package/dist/api/program/departments.d.ts.map +1 -0
  219. package/dist/api/program/index.d.ts +71 -0
  220. package/dist/api/program/index.d.ts.map +1 -0
  221. package/dist/api/program/labels.d.ts +355 -0
  222. package/dist/api/program/labels.d.ts.map +1 -0
  223. package/dist/api/program/layout.d.ts +398 -0
  224. package/dist/api/program/layout.d.ts.map +1 -0
  225. package/dist/api/program/metadata.d.ts +328 -0
  226. package/dist/api/program/metadata.d.ts.map +1 -0
  227. package/dist/api/program/metrics.d.ts +108 -0
  228. package/dist/api/program/metrics.d.ts.map +1 -0
  229. package/dist/api/program/site.d.ts +823 -0
  230. package/dist/api/program/site.d.ts.map +1 -0
  231. package/dist/api/program/spreadsheet.d.ts +2628 -0
  232. package/dist/api/program/spreadsheet.d.ts.map +1 -0
  233. package/dist/api/workspace/index.d.ts +552 -0
  234. package/dist/api/workspace/index.d.ts.map +1 -0
  235. package/dist/errors/codes.d.ts +34 -0
  236. package/dist/errors/codes.d.ts.map +1 -0
  237. package/dist/errors/envelope.d.ts +56 -0
  238. package/dist/errors/envelope.d.ts.map +1 -0
  239. package/dist/errors/index.d.ts +6 -0
  240. package/dist/errors/index.d.ts.map +1 -0
  241. package/dist/errors/plugin-error.d.ts +69 -0
  242. package/dist/errors/plugin-error.d.ts.map +1 -0
  243. package/dist/handles.d.ts +229 -0
  244. package/dist/handles.d.ts.map +1 -0
  245. package/dist/host-utils.d.ts +47 -0
  246. package/dist/host-utils.d.ts.map +1 -0
  247. package/dist/index.cjs +8836 -0
  248. package/dist/index.cjs.map +1 -0
  249. package/dist/index.d.ts +6 -0
  250. package/dist/index.d.ts.map +1 -0
  251. package/dist/index.js +7568 -0
  252. package/dist/index.js.map +1 -0
  253. package/dist/types.d.ts +16 -0
  254. package/dist/types.d.ts.map +1 -0
  255. package/package.json +41 -0
  256. package/scripts/generate-manifest.mjs +238 -0
  257. package/scripts/generate-manifest.test.mjs +292 -0
  258. package/src/api/analysis/daylight.ts +470 -0
  259. package/src/api/analysis/heatmaps.ts +683 -0
  260. package/src/api/analysis/illuminance.ts +155 -0
  261. package/src/api/analysis/index.ts +61 -0
  262. package/src/api/analysis/shadows.ts +183 -0
  263. package/src/api/analysis/solar.ts +237 -0
  264. package/src/api/analysis/sunlightHours.ts +211 -0
  265. package/src/api/analysis/sunpath.ts +83 -0
  266. package/src/api/analysis/weather.ts +179 -0
  267. package/src/api/core/buildings.ts +485 -0
  268. package/src/api/core/camera/index.ts +268 -0
  269. package/src/api/core/comment/index.ts +376 -0
  270. package/src/api/core/geom/create/index.ts +1204 -0
  271. package/src/api/core/geom/delete/index.ts +84 -0
  272. package/src/api/core/geom/index.ts +35 -0
  273. package/src/api/core/geom/query/arc.ts +169 -0
  274. package/src/api/core/geom/query/brep.ts +563 -0
  275. package/src/api/core/geom/query/circle.ts +404 -0
  276. package/src/api/core/geom/query/contour.ts +540 -0
  277. package/src/api/core/geom/query/curve.ts +1078 -0
  278. package/src/api/core/geom/query/edge.ts +130 -0
  279. package/src/api/core/geom/query/face.ts +403 -0
  280. package/src/api/core/geom/query/halfedge.ts +210 -0
  281. package/src/api/core/geom/query/index.ts +63 -0
  282. package/src/api/core/geom/query/profile.ts +473 -0
  283. package/src/api/core/geom/query/vertex.ts +205 -0
  284. package/src/api/core/geom/update/contour.ts +315 -0
  285. package/src/api/core/geom/update/curve.ts +209 -0
  286. package/src/api/core/geom/update/index.ts +29 -0
  287. package/src/api/core/geom/update/profile.ts +377 -0
  288. package/src/api/core/groups.ts +521 -0
  289. package/src/api/core/handles/index.ts +233 -0
  290. package/src/api/core/history/index.ts +84 -0
  291. package/src/api/core/index.ts +99 -0
  292. package/src/api/core/io/export/index.ts +126 -0
  293. package/src/api/core/io/import/index.ts +504 -0
  294. package/src/api/core/io/index.ts +42 -0
  295. package/src/api/core/io/job/index.ts +140 -0
  296. package/src/api/core/io/query/index.ts +71 -0
  297. package/src/api/core/io/terrain/index.ts +360 -0
  298. package/src/api/core/io/underlay/index.ts +705 -0
  299. package/src/api/core/layers.ts +333 -0
  300. package/src/api/core/math/index.ts +20 -0
  301. package/src/api/core/math/quat.ts +172 -0
  302. package/src/api/core/math/vec3.ts +179 -0
  303. package/src/api/core/mode/index.ts +108 -0
  304. package/src/api/core/project/index.ts +479 -0
  305. package/src/api/core/proposals/index.ts +569 -0
  306. package/src/api/core/storeys/index.ts +294 -0
  307. package/src/api/core/tags.ts +911 -0
  308. package/src/api/core/units/index.ts +164 -0
  309. package/src/api/core/user.ts +46 -0
  310. package/src/api/core/zoom/index.ts +51 -0
  311. package/src/api/design/boolean/index.ts +179 -0
  312. package/src/api/design/create/bulk-items.ts +186 -0
  313. package/src/api/design/create/grids.ts +137 -0
  314. package/src/api/design/create/index.ts +1954 -0
  315. package/src/api/design/create/opening-fields.ts +37 -0
  316. package/src/api/design/delete/index.ts +74 -0
  317. package/src/api/design/dimensions.ts +453 -0
  318. package/src/api/design/doors/index.ts +500 -0
  319. package/src/api/design/edit/index.ts +54 -0
  320. package/src/api/design/erase/index.ts +151 -0
  321. package/src/api/design/family.ts +646 -0
  322. package/src/api/design/furniture/index.ts +319 -0
  323. package/src/api/design/grids.ts +237 -0
  324. package/src/api/design/index.ts +274 -0
  325. package/src/api/design/lock.ts +69 -0
  326. package/src/api/design/materials/index.ts +608 -0
  327. package/src/api/design/query/geometry/index.ts +288 -0
  328. package/src/api/design/query/grids.ts +197 -0
  329. package/src/api/design/query/index.ts +1176 -0
  330. package/src/api/design/query/referenceLines.ts +52 -0
  331. package/src/api/design/query/spaces.ts +275 -0
  332. package/src/api/design/selection/index.ts +273 -0
  333. package/src/api/design/shared.ts +40 -0
  334. package/src/api/design/transform/index.ts +254 -0
  335. package/src/api/design/types/index.ts +156 -0
  336. package/src/api/design/update/index.ts +798 -0
  337. package/src/api/design/visibility.ts +143 -0
  338. package/src/api/design/windows/index.ts +333 -0
  339. package/src/api/entity/buildableEnvelope.ts +322 -0
  340. package/src/api/entity/department.ts +0 -0
  341. package/src/api/entity/index.ts +30 -0
  342. package/src/api/entity/referenceLine.ts +235 -0
  343. package/src/api/entity/space.ts +612 -0
  344. package/src/api/entity/story.ts +517 -0
  345. package/src/api/index.ts +47 -0
  346. package/src/api/presentation/aiInspiration.ts +1116 -0
  347. package/src/api/presentation/annotate.ts +417 -0
  348. package/src/api/presentation/diagrams.ts +194 -0
  349. package/src/api/presentation/drawings.ts +529 -0
  350. package/src/api/presentation/export.ts +133 -0
  351. package/src/api/presentation/import.ts +159 -0
  352. package/src/api/presentation/index.ts +129 -0
  353. package/src/api/presentation/placedViews.ts +1203 -0
  354. package/src/api/presentation/shapes.ts +274 -0
  355. package/src/api/presentation/sheets.ts +616 -0
  356. package/src/api/presentation/slideshow.ts +134 -0
  357. package/src/api/presentation/tables.ts +84 -0
  358. package/src/api/presentation/viewPresets.ts +83 -0
  359. package/src/api/presentation/views.ts +698 -0
  360. package/src/api/program/adjacency.ts +164 -0
  361. package/src/api/program/areas.ts +408 -0
  362. package/src/api/program/classification.ts +138 -0
  363. package/src/api/program/cores.ts +83 -0
  364. package/src/api/program/departments.ts +517 -0
  365. package/src/api/program/index.ts +73 -0
  366. package/src/api/program/labels.ts +332 -0
  367. package/src/api/program/layout.ts +422 -0
  368. package/src/api/program/metadata.ts +364 -0
  369. package/src/api/program/metrics.ts +120 -0
  370. package/src/api/program/site.ts +748 -0
  371. package/src/api/program/spreadsheet.ts +2698 -0
  372. package/src/api/workspace/index.ts +612 -0
  373. package/src/errors/codes.ts +136 -0
  374. package/src/errors/envelope.ts +75 -0
  375. package/src/errors/index.ts +21 -0
  376. package/src/errors/plugin-error.ts +134 -0
  377. package/src/handles.ts +282 -0
  378. package/src/host-utils.ts +68 -0
  379. package/src/index.ts +5 -0
  380. package/src/types.ts +16 -0
  381. package/test/errors.test.mjs +184 -0
  382. package/tsconfig.json +22 -0
  383. 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>