@pascal-app/core 1.0.6 → 1.0.7

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 (940) hide show
  1. package/dist/agent-operations/__fixtures__/add-object-cases.d.ts +31 -0
  2. package/dist/agent-operations/__fixtures__/add-object-cases.d.ts.map +1 -1
  3. package/dist/agent-operations/__fixtures__/build-room-cases.d.ts.map +1 -1
  4. package/dist/agent-operations/__fixtures__/build-room-cases.js +27 -0
  5. package/dist/agent-operations/__fixtures__/cases.d.ts.map +1 -1
  6. package/dist/agent-operations/__fixtures__/cases.js +19 -11
  7. package/dist/agent-operations/__fixtures__/design-brief-cases.d.ts +25 -2
  8. package/dist/agent-operations/__fixtures__/design-brief-cases.d.ts.map +1 -1
  9. package/dist/agent-operations/__fixtures__/design-brief-cases.js +509 -66
  10. package/dist/agent-operations/__fixtures__/dressing-scenes.d.ts +30 -0
  11. package/dist/agent-operations/__fixtures__/dressing-scenes.d.ts.map +1 -0
  12. package/dist/agent-operations/__fixtures__/dressing-scenes.js +82 -0
  13. package/dist/agent-operations/__fixtures__/native-materials.d.ts +407 -9
  14. package/dist/agent-operations/__fixtures__/native-materials.d.ts.map +1 -1
  15. package/dist/agent-operations/__fixtures__/notation-cases.d.ts.map +1 -1
  16. package/dist/agent-operations/__fixtures__/notation-cases.js +14 -0
  17. package/dist/agent-operations/__fixtures__/roof-bearing-cases.d.ts +7253 -4053
  18. package/dist/agent-operations/__fixtures__/roof-bearing-cases.d.ts.map +1 -1
  19. package/dist/agent-operations/__fixtures__/room-cases.d.ts +1 -0
  20. package/dist/agent-operations/__fixtures__/room-cases.d.ts.map +1 -1
  21. package/dist/agent-operations/__fixtures__/room-cases.js +57 -1
  22. package/dist/agent-operations/__fixtures__/room-check-scenes.d.ts +51 -0
  23. package/dist/agent-operations/__fixtures__/room-check-scenes.d.ts.map +1 -0
  24. package/dist/agent-operations/__fixtures__/room-check-scenes.js +121 -0
  25. package/dist/agent-operations/__fixtures__/scene-check-cases.d.ts.map +1 -1
  26. package/dist/agent-operations/__fixtures__/scene-check-cases.js +152 -18
  27. package/dist/agent-operations/__fixtures__/search-assets-cases.d.ts.map +1 -1
  28. package/dist/agent-operations/__fixtures__/search-assets-cases.js +91 -0
  29. package/dist/agent-operations/__fixtures__/site-cases.d.ts +40 -1
  30. package/dist/agent-operations/__fixtures__/site-cases.d.ts.map +1 -1
  31. package/dist/agent-operations/__fixtures__/structure-cases.d.ts +3 -0
  32. package/dist/agent-operations/__fixtures__/structure-cases.d.ts.map +1 -1
  33. package/dist/agent-operations/__fixtures__/structure-cases.js +199 -18
  34. package/dist/agent-operations/__fixtures__/unit-cases.d.ts +6 -0
  35. package/dist/agent-operations/__fixtures__/unit-cases.d.ts.map +1 -0
  36. package/dist/agent-operations/__fixtures__/unit-cases.js +266 -0
  37. package/dist/agent-operations/__fixtures__/verify-scene-cases.d.ts +109 -73
  38. package/dist/agent-operations/__fixtures__/verify-scene-cases.d.ts.map +1 -1
  39. package/dist/agent-operations/add-column.d.ts.map +1 -1
  40. package/dist/agent-operations/add-column.js +32 -3
  41. package/dist/agent-operations/add-fence.d.ts.map +1 -1
  42. package/dist/agent-operations/add-fence.js +2 -1
  43. package/dist/agent-operations/add-level.d.ts.map +1 -1
  44. package/dist/agent-operations/add-level.js +4 -4
  45. package/dist/agent-operations/add-object.d.ts +32 -6
  46. package/dist/agent-operations/add-object.d.ts.map +1 -1
  47. package/dist/agent-operations/add-object.js +59 -12
  48. package/dist/agent-operations/add-wall.d.ts +3 -8
  49. package/dist/agent-operations/add-wall.d.ts.map +1 -1
  50. package/dist/agent-operations/add-wall.js +31 -8
  51. package/dist/agent-operations/apply-changes.d.ts.map +1 -1
  52. package/dist/agent-operations/apply-changes.js +2 -1
  53. package/dist/agent-operations/asset-catalog.d.ts +63 -0
  54. package/dist/agent-operations/asset-catalog.d.ts.map +1 -0
  55. package/dist/agent-operations/asset-catalog.js +182 -0
  56. package/dist/agent-operations/asset-views.d.ts +4 -2
  57. package/dist/agent-operations/asset-views.d.ts.map +1 -1
  58. package/dist/agent-operations/asset-views.js +1 -3
  59. package/dist/agent-operations/author-scene-checks.d.ts +38 -0
  60. package/dist/agent-operations/author-scene-checks.d.ts.map +1 -0
  61. package/dist/agent-operations/author-scene-checks.js +266 -0
  62. package/dist/agent-operations/author-scene.d.ts +54 -20
  63. package/dist/agent-operations/author-scene.d.ts.map +1 -1
  64. package/dist/agent-operations/author-scene.js +1164 -196
  65. package/dist/agent-operations/authored-scene-merge.d.ts.map +1 -1
  66. package/dist/agent-operations/authored-scene-merge.js +61 -3
  67. package/dist/agent-operations/batch.d.ts +1 -1
  68. package/dist/agent-operations/batch.d.ts.map +1 -1
  69. package/dist/agent-operations/batch.js +38 -39
  70. package/dist/agent-operations/ceiling-object-observations.d.ts.map +1 -1
  71. package/dist/agent-operations/ceiling-object-observations.js +5 -4
  72. package/dist/agent-operations/circulation-geometry.d.ts +14 -0
  73. package/dist/agent-operations/circulation-geometry.d.ts.map +1 -0
  74. package/dist/agent-operations/circulation-geometry.js +151 -0
  75. package/dist/agent-operations/circulation-graph.d.ts +72 -0
  76. package/dist/agent-operations/circulation-graph.d.ts.map +1 -0
  77. package/dist/agent-operations/circulation-graph.js +713 -0
  78. package/dist/agent-operations/circulation-non-spaces.d.ts +10 -0
  79. package/dist/agent-operations/circulation-non-spaces.d.ts.map +1 -0
  80. package/dist/agent-operations/circulation-non-spaces.js +88 -0
  81. package/dist/agent-operations/circulation-spaces.d.ts +5880 -0
  82. package/dist/agent-operations/circulation-spaces.d.ts.map +1 -0
  83. package/dist/agent-operations/circulation-spaces.js +368 -0
  84. package/dist/agent-operations/collections.d.ts.map +1 -1
  85. package/dist/agent-operations/collections.js +9 -7
  86. package/dist/agent-operations/corner-window.d.ts.map +1 -1
  87. package/dist/agent-operations/corner-window.js +2 -4
  88. package/dist/agent-operations/create-roof.d.ts.map +1 -1
  89. package/dist/agent-operations/create-roof.js +5 -7
  90. package/dist/agent-operations/create-room.d.ts +4 -1
  91. package/dist/agent-operations/create-room.d.ts.map +1 -1
  92. package/dist/agent-operations/create-room.js +7 -4
  93. package/dist/agent-operations/create-stair.js +2 -2
  94. package/dist/agent-operations/design-brief.d.ts +13 -7
  95. package/dist/agent-operations/design-brief.d.ts.map +1 -1
  96. package/dist/agent-operations/design-brief.js +172 -92
  97. package/dist/agent-operations/door-clearance.d.ts +68 -8
  98. package/dist/agent-operations/door-clearance.d.ts.map +1 -1
  99. package/dist/agent-operations/door-clearance.js +127 -20
  100. package/dist/agent-operations/dress-targets.d.ts +23 -0
  101. package/dist/agent-operations/dress-targets.d.ts.map +1 -0
  102. package/dist/agent-operations/dress-targets.js +34 -0
  103. package/dist/agent-operations/duplicate-node.d.ts +14 -0
  104. package/dist/agent-operations/duplicate-node.d.ts.map +1 -0
  105. package/dist/agent-operations/duplicate-node.js +173 -0
  106. package/dist/agent-operations/find-by-type.d.ts.map +1 -1
  107. package/dist/agent-operations/find-by-type.js +3 -0
  108. package/dist/agent-operations/furnish-room.d.ts +2 -0
  109. package/dist/agent-operations/furnish-room.d.ts.map +1 -1
  110. package/dist/agent-operations/furnish-room.js +15 -4
  111. package/dist/agent-operations/furniture-kind.d.ts +28 -1
  112. package/dist/agent-operations/furniture-kind.d.ts.map +1 -1
  113. package/dist/agent-operations/furniture-kind.js +105 -6
  114. package/dist/agent-operations/ground-reader.d.ts +10 -0
  115. package/dist/agent-operations/ground-reader.d.ts.map +1 -0
  116. package/dist/agent-operations/ground-reader.js +25 -0
  117. package/dist/agent-operations/index.d.ts +118 -12
  118. package/dist/agent-operations/index.d.ts.map +1 -1
  119. package/dist/agent-operations/index.js +26 -1
  120. package/dist/agent-operations/item-solids.d.ts +39 -0
  121. package/dist/agent-operations/item-solids.d.ts.map +1 -0
  122. package/dist/agent-operations/item-solids.js +128 -0
  123. package/dist/agent-operations/layout-clearance.d.ts +91 -11
  124. package/dist/agent-operations/layout-clearance.d.ts.map +1 -1
  125. package/dist/agent-operations/layout-clearance.js +280 -73
  126. package/dist/agent-operations/level-height-fill.d.ts.map +1 -1
  127. package/dist/agent-operations/level-height-fill.js +7 -1
  128. package/dist/agent-operations/level-reads.d.ts +5 -0
  129. package/dist/agent-operations/level-reads.d.ts.map +1 -1
  130. package/dist/agent-operations/level-reads.js +38 -2
  131. package/dist/agent-operations/list-levels.d.ts.map +1 -1
  132. package/dist/agent-operations/list-levels.js +2 -4
  133. package/dist/agent-operations/move-node.d.ts +12 -0
  134. package/dist/agent-operations/move-node.d.ts.map +1 -0
  135. package/dist/agent-operations/move-node.js +28 -0
  136. package/dist/agent-operations/move-plan.d.ts +28 -0
  137. package/dist/agent-operations/move-plan.d.ts.map +1 -0
  138. package/dist/agent-operations/move-plan.js +257 -0
  139. package/dist/agent-operations/node-patch.d.ts.map +1 -1
  140. package/dist/agent-operations/node-patch.js +15 -0
  141. package/dist/agent-operations/paint.d.ts +3 -1
  142. package/dist/agent-operations/paint.d.ts.map +1 -1
  143. package/dist/agent-operations/paint.js +14 -1
  144. package/dist/agent-operations/photo-elevation.d.ts.map +1 -1
  145. package/dist/agent-operations/photo-elevation.js +2 -1
  146. package/dist/agent-operations/place-in-room.d.ts.map +1 -1
  147. package/dist/agent-operations/place-in-room.js +1 -0
  148. package/dist/agent-operations/place-items.d.ts.map +1 -1
  149. package/dist/agent-operations/place-items.js +3 -4
  150. package/dist/agent-operations/plan-clearance.d.ts +28 -0
  151. package/dist/agent-operations/plan-clearance.d.ts.map +1 -0
  152. package/dist/agent-operations/plan-clearance.js +47 -0
  153. package/dist/agent-operations/plan-geometry.d.ts +2 -0
  154. package/dist/agent-operations/plan-geometry.d.ts.map +1 -1
  155. package/dist/agent-operations/plan-geometry.js +10 -0
  156. package/dist/agent-operations/project-files.d.ts +10 -0
  157. package/dist/agent-operations/project-files.d.ts.map +1 -1
  158. package/dist/agent-operations/reachability.d.ts +41 -0
  159. package/dist/agent-operations/reachability.d.ts.map +1 -0
  160. package/dist/agent-operations/reachability.js +199 -0
  161. package/dist/agent-operations/room-checks.d.ts +60 -0
  162. package/dist/agent-operations/room-checks.d.ts.map +1 -0
  163. package/dist/agent-operations/room-checks.js +226 -0
  164. package/dist/agent-operations/room-faces.d.ts +30 -0
  165. package/dist/agent-operations/room-faces.d.ts.map +1 -0
  166. package/dist/agent-operations/room-faces.js +31 -0
  167. package/dist/agent-operations/room-findings.d.ts +5 -2
  168. package/dist/agent-operations/room-findings.d.ts.map +1 -1
  169. package/dist/agent-operations/room-findings.js +30 -0
  170. package/dist/agent-operations/room-finishes.d.ts +87 -0
  171. package/dist/agent-operations/room-finishes.d.ts.map +1 -0
  172. package/dist/agent-operations/room-finishes.js +193 -0
  173. package/dist/agent-operations/room-floor-script.d.ts +3 -3
  174. package/dist/agent-operations/room-floor-script.js +3 -3
  175. package/dist/agent-operations/room-readings.d.ts +90 -0
  176. package/dist/agent-operations/room-readings.d.ts.map +1 -0
  177. package/dist/agent-operations/room-readings.js +369 -0
  178. package/dist/agent-operations/room-tile.d.ts +15 -0
  179. package/dist/agent-operations/room-tile.d.ts.map +1 -0
  180. package/dist/agent-operations/room-tile.js +30 -0
  181. package/dist/agent-operations/room-wet.d.ts +55 -0
  182. package/dist/agent-operations/room-wet.d.ts.map +1 -0
  183. package/dist/agent-operations/room-wet.js +203 -0
  184. package/dist/agent-operations/scene-check-policy.d.ts +5 -0
  185. package/dist/agent-operations/scene-check-policy.d.ts.map +1 -0
  186. package/dist/agent-operations/scene-check-policy.js +24 -0
  187. package/dist/agent-operations/scene-checkpoint.d.ts +10 -0
  188. package/dist/agent-operations/scene-checkpoint.d.ts.map +1 -1
  189. package/dist/agent-operations/scene-checkpoint.js +31 -0
  190. package/dist/agent-operations/scene-issue-groups.d.ts +17 -0
  191. package/dist/agent-operations/scene-issue-groups.d.ts.map +1 -0
  192. package/dist/agent-operations/scene-issue-groups.js +71 -0
  193. package/dist/agent-operations/scene-materials.d.ts +23 -0
  194. package/dist/agent-operations/scene-materials.d.ts.map +1 -1
  195. package/dist/agent-operations/scene-materials.js +41 -0
  196. package/dist/agent-operations/scene-queries.d.ts +1667 -866
  197. package/dist/agent-operations/scene-queries.d.ts.map +1 -1
  198. package/dist/agent-operations/scene-queries.js +3 -3
  199. package/dist/agent-operations/scene-review.d.ts.map +1 -1
  200. package/dist/agent-operations/scene-review.js +3 -2
  201. package/dist/agent-operations/scene-view.d.ts.map +1 -1
  202. package/dist/agent-operations/scene-view.js +91 -21
  203. package/dist/agent-operations/search-assets.d.ts +10 -6
  204. package/dist/agent-operations/search-assets.d.ts.map +1 -1
  205. package/dist/agent-operations/search-assets.js +37 -22
  206. package/dist/agent-operations/set-checkpoint.d.ts.map +1 -1
  207. package/dist/agent-operations/set-checkpoint.js +1 -0
  208. package/dist/agent-operations/set-ground-level.d.ts +1 -1
  209. package/dist/agent-operations/set-ground-level.d.ts.map +1 -1
  210. package/dist/agent-operations/set-ground-level.js +3 -14
  211. package/dist/agent-operations/site.js +3 -2
  212. package/dist/agent-operations/slab-surface-script.d.ts +25 -0
  213. package/dist/agent-operations/slab-surface-script.d.ts.map +1 -0
  214. package/dist/agent-operations/slab-surface-script.js +60 -0
  215. package/dist/agent-operations/stair-plan-footprint.d.ts +9 -0
  216. package/dist/agent-operations/stair-plan-footprint.d.ts.map +1 -0
  217. package/dist/agent-operations/stair-plan-footprint.js +50 -0
  218. package/dist/agent-operations/types.d.ts +10 -5
  219. package/dist/agent-operations/types.d.ts.map +1 -1
  220. package/dist/agent-operations/units.d.ts +26 -0
  221. package/dist/agent-operations/units.d.ts.map +1 -0
  222. package/dist/agent-operations/units.js +110 -0
  223. package/dist/agent-operations/unreachable-rooms-check.d.ts +17 -0
  224. package/dist/agent-operations/unreachable-rooms-check.d.ts.map +1 -0
  225. package/dist/agent-operations/unreachable-rooms-check.js +35 -0
  226. package/dist/agent-operations/usage-checks.d.ts +2 -0
  227. package/dist/agent-operations/usage-checks.d.ts.map +1 -0
  228. package/dist/agent-operations/usage-checks.js +12 -0
  229. package/dist/agent-operations/verify-scene.d.ts +8 -11
  230. package/dist/agent-operations/verify-scene.d.ts.map +1 -1
  231. package/dist/agent-operations/verify-scene.js +55 -11
  232. package/dist/agent-operations/wall-face-defaults.d.ts +44 -0
  233. package/dist/agent-operations/wall-face-defaults.d.ts.map +1 -0
  234. package/dist/agent-operations/wall-face-defaults.js +229 -0
  235. package/dist/agent-operations/wall-joins.d.ts +119 -0
  236. package/dist/agent-operations/wall-joins.d.ts.map +1 -0
  237. package/dist/agent-operations/wall-joins.js +308 -0
  238. package/dist/agent-operations/wall-object-observations.d.ts.map +1 -1
  239. package/dist/agent-operations/wall-object-observations.js +4 -6
  240. package/dist/agent-operations/wall-skirting.d.ts.map +1 -1
  241. package/dist/agent-operations/wall-skirting.js +2 -0
  242. package/dist/agent-operations/wall-type.d.ts +49 -0
  243. package/dist/agent-operations/wall-type.d.ts.map +1 -0
  244. package/dist/agent-operations/wall-type.js +31 -0
  245. package/dist/agent-operations/zone-coverage.d.ts +85 -0
  246. package/dist/agent-operations/zone-coverage.d.ts.map +1 -0
  247. package/dist/agent-operations/zone-coverage.js +208 -0
  248. package/dist/agent-tools/add-object.d.ts +31 -0
  249. package/dist/agent-tools/add-object.d.ts.map +1 -1
  250. package/dist/agent-tools/add-object.js +44 -7
  251. package/dist/agent-tools/assets.d.ts +4 -0
  252. package/dist/agent-tools/assets.d.ts.map +1 -1
  253. package/dist/agent-tools/assets.js +11 -1
  254. package/dist/agent-tools/author-scene.d.ts +810 -15
  255. package/dist/agent-tools/author-scene.d.ts.map +1 -1
  256. package/dist/agent-tools/author-scene.js +275 -34
  257. package/dist/agent-tools/batch.d.ts +1 -1
  258. package/dist/agent-tools/batch.d.ts.map +1 -1
  259. package/dist/agent-tools/batch.js +5 -1
  260. package/dist/agent-tools/checkpoints.js +1 -1
  261. package/dist/agent-tools/columns.d.ts +14 -0
  262. package/dist/agent-tools/columns.d.ts.map +1 -1
  263. package/dist/agent-tools/columns.js +14 -2
  264. package/dist/agent-tools/contract.d.ts +10 -0
  265. package/dist/agent-tools/contract.d.ts.map +1 -1
  266. package/dist/agent-tools/contract.js +5 -1
  267. package/dist/agent-tools/corner-window.d.ts +1 -0
  268. package/dist/agent-tools/corner-window.d.ts.map +1 -1
  269. package/dist/agent-tools/corner-window.js +1 -1
  270. package/dist/agent-tools/create-room.d.ts +85 -0
  271. package/dist/agent-tools/create-room.d.ts.map +1 -1
  272. package/dist/agent-tools/create-room.js +8 -1
  273. package/dist/agent-tools/design-brief.d.ts +513 -7
  274. package/dist/agent-tools/design-brief.d.ts.map +1 -1
  275. package/dist/agent-tools/design-brief.js +192 -14
  276. package/dist/agent-tools/designs.js +1 -1
  277. package/dist/agent-tools/find-by-type.js +1 -1
  278. package/dist/agent-tools/index.d.ts +658 -10
  279. package/dist/agent-tools/index.d.ts.map +1 -1
  280. package/dist/agent-tools/index.js +9 -1
  281. package/dist/agent-tools/levels.js +4 -4
  282. package/dist/agent-tools/move-duplicate.d.ts +65 -0
  283. package/dist/agent-tools/move-duplicate.d.ts.map +1 -0
  284. package/dist/agent-tools/move-duplicate.js +68 -0
  285. package/dist/agent-tools/paint.d.ts +6 -0
  286. package/dist/agent-tools/paint.d.ts.map +1 -1
  287. package/dist/agent-tools/paint.js +7 -3
  288. package/dist/agent-tools/photo-elevation.js +1 -1
  289. package/dist/agent-tools/project-files.d.ts +2 -2
  290. package/dist/agent-tools/project-files.d.ts.map +1 -1
  291. package/dist/agent-tools/project-files.js +1 -1
  292. package/dist/agent-tools/refusal.d.ts +9 -1
  293. package/dist/agent-tools/refusal.d.ts.map +1 -1
  294. package/dist/agent-tools/refusal.js +5 -1
  295. package/dist/agent-tools/roofs.js +1 -1
  296. package/dist/agent-tools/room-structure.d.ts +60 -0
  297. package/dist/agent-tools/room-structure.d.ts.map +1 -1
  298. package/dist/agent-tools/room-structure.js +20 -1
  299. package/dist/agent-tools/search-materials.d.ts +1 -0
  300. package/dist/agent-tools/search-materials.d.ts.map +1 -1
  301. package/dist/agent-tools/site.js +1 -1
  302. package/dist/agent-tools/stairs.js +1 -1
  303. package/dist/agent-tools/units.d.ts +84 -0
  304. package/dist/agent-tools/units.d.ts.map +1 -0
  305. package/dist/agent-tools/units.js +54 -0
  306. package/dist/agent-tools/verify-scene-usage.d.ts +44 -0
  307. package/dist/agent-tools/verify-scene-usage.d.ts.map +1 -0
  308. package/dist/agent-tools/verify-scene-usage.js +146 -0
  309. package/dist/agent-tools/verify-scene.d.ts +12 -1
  310. package/dist/agent-tools/verify-scene.d.ts.map +1 -1
  311. package/dist/agent-tools/verify-scene.js +183 -3
  312. package/dist/agent-tools/view-scene.d.ts +3 -0
  313. package/dist/agent-tools/view-scene.d.ts.map +1 -1
  314. package/dist/agent-tools/view-scene.js +4 -1
  315. package/dist/agent-tools/wall-openings.d.ts +121 -2
  316. package/dist/agent-tools/wall-openings.d.ts.map +1 -1
  317. package/dist/agent-tools/wall-openings.js +123 -18
  318. package/dist/agent-tools/walls.d.ts +30 -0
  319. package/dist/agent-tools/walls.d.ts.map +1 -1
  320. package/dist/agent-tools/walls.js +54 -2
  321. package/dist/building/__fixtures__/wall-opening-cases.d.ts +340 -195
  322. package/dist/building/__fixtures__/wall-opening-cases.d.ts.map +1 -1
  323. package/dist/building/__fixtures__/wall-opening-cases.js +13 -0
  324. package/dist/building/code-profile.d.ts +231 -0
  325. package/dist/building/code-profile.d.ts.map +1 -0
  326. package/dist/building/code-profile.js +208 -0
  327. package/dist/building/corner-window.d.ts +2 -2
  328. package/dist/building/corner-window.d.ts.map +1 -1
  329. package/dist/building/corner-window.js +11 -2
  330. package/dist/building/door-types.d.ts +1 -0
  331. package/dist/building/door-types.d.ts.map +1 -1
  332. package/dist/building/door-types.js +2 -0
  333. package/dist/building/floor-item-fit.d.ts.map +1 -1
  334. package/dist/building/floor-item-fit.js +2 -4
  335. package/dist/building/ground-level.d.ts +1 -3
  336. package/dist/building/ground-level.d.ts.map +1 -1
  337. package/dist/building/ground-level.js +3 -5
  338. package/dist/building/index.d.ts +2 -0
  339. package/dist/building/index.d.ts.map +1 -1
  340. package/dist/building/index.js +2 -0
  341. package/dist/building/level-duplication.d.ts +5951 -4351
  342. package/dist/building/level-duplication.d.ts.map +1 -1
  343. package/dist/building/level-insertion.d.ts +1 -1
  344. package/dist/building/level-wall-copy.d.ts +24 -0
  345. package/dist/building/level-wall-copy.d.ts.map +1 -0
  346. package/dist/building/level-wall-copy.js +53 -0
  347. package/dist/building/merge-windows.d.ts.map +1 -1
  348. package/dist/building/merge-windows.js +1 -0
  349. package/dist/building/opening-style-presets.d.ts +2 -0
  350. package/dist/building/opening-style-presets.d.ts.map +1 -1
  351. package/dist/building/opening-style-presets.js +26 -5
  352. package/dist/building/room-use.d.ts +26 -0
  353. package/dist/building/room-use.d.ts.map +1 -0
  354. package/dist/building/room-use.js +102 -0
  355. package/dist/building/wall-openings.d.ts +115 -7
  356. package/dist/building/wall-openings.d.ts.map +1 -1
  357. package/dist/building/wall-openings.js +121 -29
  358. package/dist/building/window-types.d.ts +1 -0
  359. package/dist/building/window-types.d.ts.map +1 -1
  360. package/dist/building/window-types.js +3 -0
  361. package/dist/coherence/__fixtures__/enclosure-scenes.d.ts +84 -0
  362. package/dist/coherence/__fixtures__/enclosure-scenes.d.ts.map +1 -0
  363. package/dist/coherence/__fixtures__/enclosure-scenes.js +44 -0
  364. package/dist/commands/structure/attached-walls.d.ts +16 -0
  365. package/dist/commands/structure/attached-walls.d.ts.map +1 -0
  366. package/dist/commands/structure/attached-walls.js +53 -0
  367. package/dist/commands/structure/index.d.ts +3 -0
  368. package/dist/commands/structure/index.d.ts.map +1 -1
  369. package/dist/commands/structure/index.js +3 -0
  370. package/dist/commands/structure/move-separators.d.ts +62 -0
  371. package/dist/commands/structure/move-separators.d.ts.map +1 -0
  372. package/dist/commands/structure/move-separators.js +346 -0
  373. package/dist/commands/structure/set-floor-foundation.d.ts +5 -0
  374. package/dist/commands/structure/set-floor-foundation.d.ts.map +1 -1
  375. package/dist/commands/structure/set-wall-geometry.d.ts.map +1 -1
  376. package/dist/commands/structure/set-wall-geometry.js +44 -11
  377. package/dist/commands/structure/set-zone-intent.d.ts +26 -0
  378. package/dist/commands/structure/set-zone-intent.d.ts.map +1 -1
  379. package/dist/commands/structure/set-zone-intent.js +107 -2
  380. package/dist/commands/structure/shared.d.ts +888 -88
  381. package/dist/commands/structure/shared.d.ts.map +1 -1
  382. package/dist/commands/structure/wall-overlap.d.ts +45 -0
  383. package/dist/commands/structure/wall-overlap.d.ts.map +1 -0
  384. package/dist/commands/structure/wall-overlap.js +289 -0
  385. package/dist/commands/structure/zone-wall-merge.d.ts +3326 -2370
  386. package/dist/commands/structure/zone-wall-merge.d.ts.map +1 -1
  387. package/dist/contracts/reference-discovery.d.ts +2 -2
  388. package/dist/contracts/reference-discovery.d.ts.map +1 -1
  389. package/dist/contracts/reference-discovery.js +5 -3
  390. package/dist/contracts/reference-inventory.d.ts.map +1 -1
  391. package/dist/contracts/reference-inventory.js +75 -24
  392. package/dist/events/bus.d.ts +15 -2
  393. package/dist/events/bus.d.ts.map +1 -1
  394. package/dist/hooks/spatial-grid/built-in-floor-placed.d.ts +40 -0
  395. package/dist/hooks/spatial-grid/built-in-floor-placed.d.ts.map +1 -0
  396. package/dist/hooks/spatial-grid/built-in-floor-placed.js +220 -0
  397. package/dist/hooks/spatial-grid/floor-placed-elevation.d.ts.map +1 -1
  398. package/dist/hooks/spatial-grid/floor-placed-elevation.js +13 -7
  399. package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts +56 -1
  400. package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts.map +1 -1
  401. package/dist/hooks/spatial-grid/spatial-grid-manager.js +177 -27
  402. package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts +1631 -831
  403. package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts.map +1 -1
  404. package/dist/hooks/spatial-grid/spatial-grid-sync.js +24 -1
  405. package/dist/hooks/spatial-grid/support-host-patch.js +10 -10
  406. package/dist/i18n/format.d.ts +41 -0
  407. package/dist/i18n/format.d.ts.map +1 -0
  408. package/dist/i18n/format.js +124 -0
  409. package/dist/i18n/index.d.ts +5 -0
  410. package/dist/i18n/index.d.ts.map +1 -0
  411. package/dist/i18n/index.js +3 -0
  412. package/dist/i18n/registry.d.ts +78 -0
  413. package/dist/i18n/registry.d.ts.map +1 -0
  414. package/dist/i18n/registry.js +252 -0
  415. package/dist/i18n/use-translate.d.ts +16 -0
  416. package/dist/i18n/use-translate.d.ts.map +1 -0
  417. package/dist/i18n/use-translate.js +23 -0
  418. package/dist/index.d.ts +32 -16
  419. package/dist/index.d.ts.map +1 -1
  420. package/dist/index.js +31 -15
  421. package/dist/lib/__fixtures__/mezzanine.d.ts +6840 -4169
  422. package/dist/lib/__fixtures__/mezzanine.d.ts.map +1 -1
  423. package/dist/lib/absorb-wall-separators.d.ts +2128 -1328
  424. package/dist/lib/absorb-wall-separators.d.ts.map +1 -1
  425. package/dist/lib/beam.d.ts +137 -0
  426. package/dist/lib/beam.d.ts.map +1 -0
  427. package/dist/lib/beam.js +297 -0
  428. package/dist/lib/below-grade-footprints.d.ts +13 -5
  429. package/dist/lib/below-grade-footprints.d.ts.map +1 -1
  430. package/dist/lib/below-grade-footprints.js +53 -10
  431. package/dist/lib/build-up.d.ts +89 -0
  432. package/dist/lib/build-up.d.ts.map +1 -0
  433. package/dist/lib/build-up.js +216 -0
  434. package/dist/lib/corner-pair.d.ts +205 -4
  435. package/dist/lib/corner-pair.d.ts.map +1 -1
  436. package/dist/lib/deck-boards.d.ts +80 -0
  437. package/dist/lib/deck-boards.d.ts.map +1 -0
  438. package/dist/lib/deck-boards.js +184 -0
  439. package/dist/lib/deck-framing.d.ts +150 -0
  440. package/dist/lib/deck-framing.d.ts.map +1 -0
  441. package/dist/lib/deck-framing.js +515 -0
  442. package/dist/lib/deepest-drawn.d.ts +3 -6
  443. package/dist/lib/deepest-drawn.d.ts.map +1 -1
  444. package/dist/lib/deepest-drawn.js +4 -8
  445. package/dist/lib/door-opening.d.ts +19 -0
  446. package/dist/lib/door-opening.d.ts.map +1 -0
  447. package/dist/lib/door-opening.js +27 -0
  448. package/dist/lib/door-operation.d.ts +2 -0
  449. package/dist/lib/door-operation.d.ts.map +1 -1
  450. package/dist/lib/door-operation.js +4 -0
  451. package/dist/lib/exterior-wall-loops.d.ts.map +1 -1
  452. package/dist/lib/exterior-wall-loops.js +2 -1
  453. package/dist/lib/finish-script.d.ts +5 -5
  454. package/dist/lib/finish-script.d.ts.map +1 -1
  455. package/dist/lib/finish-script.js +12 -5
  456. package/dist/lib/floor-footprint-name.d.ts +17 -0
  457. package/dist/lib/floor-footprint-name.d.ts.map +1 -1
  458. package/dist/lib/floor-footprint-name.js +17 -4
  459. package/dist/lib/floor-intent-changes.d.ts.map +1 -1
  460. package/dist/lib/floor-intent-changes.js +60 -35
  461. package/dist/lib/floor-opening-footprints.d.ts +1 -1
  462. package/dist/lib/floor-opening-footprints.d.ts.map +1 -1
  463. package/dist/lib/floor-opening-footprints.js +10 -4
  464. package/dist/lib/floor-plate-paint.d.ts +2 -0
  465. package/dist/lib/floor-plate-paint.d.ts.map +1 -1
  466. package/dist/lib/floor-plate-paint.js +12 -0
  467. package/dist/lib/floor-plates.d.ts +250 -0
  468. package/dist/lib/floor-plates.d.ts.map +1 -1
  469. package/dist/lib/floor-plates.js +43 -4
  470. package/dist/lib/floor-script.d.ts +35 -6
  471. package/dist/lib/floor-script.d.ts.map +1 -1
  472. package/dist/lib/floor-script.js +96 -16
  473. package/dist/lib/foundation-construction.d.ts +4 -13
  474. package/dist/lib/foundation-construction.d.ts.map +1 -1
  475. package/dist/lib/foundation-construction.js +4 -14
  476. package/dist/lib/foundation-standard.d.ts +2 -3
  477. package/dist/lib/foundation-standard.d.ts.map +1 -1
  478. package/dist/lib/foundation-standard.js +2 -3
  479. package/dist/lib/foundation-wall.d.ts +1 -2
  480. package/dist/lib/foundation-wall.d.ts.map +1 -1
  481. package/dist/lib/foundation-wall.js +1 -2
  482. package/dist/lib/framing-post.d.ts +91 -0
  483. package/dist/lib/framing-post.d.ts.map +1 -0
  484. package/dist/lib/framing-post.js +174 -0
  485. package/dist/lib/geometry-script-node.d.ts +11 -0
  486. package/dist/lib/geometry-script-node.d.ts.map +1 -1
  487. package/dist/lib/geometry-script-node.js +35 -0
  488. package/dist/lib/grade-standing.d.ts +16 -2
  489. package/dist/lib/grade-standing.d.ts.map +1 -1
  490. package/dist/lib/grade-standing.js +129 -9
  491. package/dist/lib/ground-seat.d.ts +2 -22
  492. package/dist/lib/ground-seat.d.ts.map +1 -1
  493. package/dist/lib/ground-seat.js +2 -17
  494. package/dist/lib/ground-window.d.ts +2 -1
  495. package/dist/lib/ground-window.d.ts.map +1 -1
  496. package/dist/lib/ground-window.js +5 -2
  497. package/dist/lib/level-footprints.d.ts +2 -0
  498. package/dist/lib/level-footprints.d.ts.map +1 -1
  499. package/dist/lib/level-footprints.js +7 -0
  500. package/dist/lib/opening-casing.d.ts +67 -0
  501. package/dist/lib/opening-casing.d.ts.map +1 -0
  502. package/dist/lib/opening-casing.js +131 -0
  503. package/dist/lib/opening-exterior-face.d.ts +6 -0
  504. package/dist/lib/opening-exterior-face.d.ts.map +1 -0
  505. package/dist/lib/opening-exterior-face.js +15 -0
  506. package/dist/lib/opening-floor-datum.d.ts +11 -5
  507. package/dist/lib/opening-floor-datum.d.ts.map +1 -1
  508. package/dist/lib/opening-floor-datum.js +38 -6
  509. package/dist/lib/opening-frame-depth.d.ts +18 -0
  510. package/dist/lib/opening-frame-depth.d.ts.map +1 -0
  511. package/dist/lib/opening-frame-depth.js +22 -0
  512. package/dist/lib/outdoor-room.d.ts +32 -0
  513. package/dist/lib/outdoor-room.d.ts.map +1 -0
  514. package/dist/lib/outdoor-room.js +66 -0
  515. package/dist/lib/plate-surface.d.ts +8 -0
  516. package/dist/lib/plate-surface.d.ts.map +1 -1
  517. package/dist/lib/plate-surface.js +53 -3
  518. package/dist/lib/porch-framing-sync.d.ts +46 -0
  519. package/dist/lib/porch-framing-sync.d.ts.map +1 -0
  520. package/dist/lib/porch-framing-sync.js +206 -0
  521. package/dist/lib/porch-framing.d.ts +44 -0
  522. package/dist/lib/porch-framing.d.ts.map +1 -0
  523. package/dist/lib/porch-framing.js +159 -0
  524. package/dist/lib/railing-rooms.d.ts +13 -0
  525. package/dist/lib/railing-rooms.d.ts.map +1 -0
  526. package/dist/lib/railing-rooms.js +37 -0
  527. package/dist/lib/roof-eave.d.ts +135 -0
  528. package/dist/lib/roof-eave.d.ts.map +1 -0
  529. package/dist/lib/roof-eave.js +186 -0
  530. package/dist/lib/room-floor-plate.d.ts +3 -1
  531. package/dist/lib/room-floor-plate.d.ts.map +1 -1
  532. package/dist/lib/room-floor-plate.js +7 -0
  533. package/dist/lib/space-detection.d.ts +13 -0
  534. package/dist/lib/space-detection.d.ts.map +1 -1
  535. package/dist/lib/space-detection.js +112 -24
  536. package/dist/lib/structure-kernel.d.ts +22 -9
  537. package/dist/lib/structure-kernel.d.ts.map +1 -1
  538. package/dist/lib/structure-kernel.js +146 -28
  539. package/dist/lib/structure-reconcile.d.ts +1 -1
  540. package/dist/lib/structure-reconcile.d.ts.map +1 -1
  541. package/dist/lib/structure-reconcile.js +7 -4
  542. package/dist/lib/surface-intent.d.ts +10 -0
  543. package/dist/lib/surface-intent.d.ts.map +1 -0
  544. package/dist/lib/surface-intent.js +18 -0
  545. package/dist/lib/terrain-source.d.ts.map +1 -1
  546. package/dist/lib/terrain-source.js +2 -1
  547. package/dist/lib/wall-face-script.d.ts.map +1 -1
  548. package/dist/lib/wall-face-script.js +5 -2
  549. package/dist/material-kinds.d.ts +1 -1
  550. package/dist/material-kinds.d.ts.map +1 -1
  551. package/dist/material-kinds.js +1 -0
  552. package/dist/material-library.d.ts +15 -0
  553. package/dist/material-library.d.ts.map +1 -1
  554. package/dist/material-library.js +458 -59
  555. package/dist/node-slots/door.d.ts +3 -4
  556. package/dist/node-slots/door.d.ts.map +1 -1
  557. package/dist/node-slots/door.js +4 -3
  558. package/dist/node-slots/wall.d.ts.map +1 -1
  559. package/dist/node-slots/wall.js +21 -3
  560. package/dist/node-slots/window.d.ts +2 -2
  561. package/dist/node-slots/window.d.ts.map +1 -1
  562. package/dist/node-slots/window.js +6 -1
  563. package/dist/procedural-items/design.d.ts +8 -0
  564. package/dist/procedural-items/design.d.ts.map +1 -1
  565. package/dist/procedural-items/design.js +169 -21
  566. package/dist/procedural-items/motion-controller.d.ts +2 -0
  567. package/dist/procedural-items/motion-controller.d.ts.map +1 -1
  568. package/dist/procedural-items/motion-controller.js +2 -1
  569. package/dist/registry/index.d.ts +2 -2
  570. package/dist/registry/index.d.ts.map +1 -1
  571. package/dist/registry/index.js +1 -1
  572. package/dist/registry/mechanism.d.ts +4 -1
  573. package/dist/registry/mechanism.d.ts.map +1 -1
  574. package/dist/registry/mechanism.js +10 -0
  575. package/dist/registry/types.d.ts +65 -23
  576. package/dist/registry/types.d.ts.map +1 -1
  577. package/dist/runtime/__fixtures__/live-scene.d.ts +14 -0
  578. package/dist/runtime/__fixtures__/live-scene.d.ts.map +1 -0
  579. package/dist/runtime/__fixtures__/live-scene.js +64 -0
  580. package/dist/runtime/apply.d.ts +42 -0
  581. package/dist/runtime/apply.d.ts.map +1 -0
  582. package/dist/runtime/apply.js +274 -0
  583. package/dist/runtime/dependencies.d.ts +97 -0
  584. package/dist/runtime/dependencies.d.ts.map +1 -0
  585. package/dist/runtime/dependencies.js +42 -0
  586. package/dist/runtime/ids.d.ts +11 -0
  587. package/dist/runtime/ids.d.ts.map +1 -0
  588. package/dist/runtime/ids.js +80 -0
  589. package/dist/runtime/index.d.ts +14 -0
  590. package/dist/runtime/index.d.ts.map +1 -0
  591. package/dist/runtime/index.js +11 -0
  592. package/dist/runtime/node-queries.d.ts +16 -0
  593. package/dist/runtime/node-queries.d.ts.map +1 -0
  594. package/dist/runtime/node-queries.js +30 -0
  595. package/dist/runtime/patch.d.ts +26 -0
  596. package/dist/runtime/patch.d.ts.map +1 -0
  597. package/dist/runtime/patch.js +165 -0
  598. package/dist/runtime/reader.d.ts +104 -0
  599. package/dist/runtime/reader.d.ts.map +1 -0
  600. package/dist/runtime/reader.js +455 -0
  601. package/dist/runtime/scene-runtime.d.ts +112 -0
  602. package/dist/runtime/scene-runtime.d.ts.map +1 -0
  603. package/dist/runtime/scene-runtime.js +302 -0
  604. package/dist/schema/__fixtures__/node-fixtures.d.ts.map +1 -1
  605. package/dist/schema/__fixtures__/node-fixtures.js +1 -0
  606. package/dist/schema/assembly.d.ts +3 -0
  607. package/dist/schema/assembly.d.ts.map +1 -1
  608. package/dist/schema/assembly.js +13 -0
  609. package/dist/schema/asset-url.d.ts +37 -2
  610. package/dist/schema/asset-url.d.ts.map +1 -1
  611. package/dist/schema/asset-url.js +80 -11
  612. package/dist/schema/base.d.ts +8 -0
  613. package/dist/schema/base.d.ts.map +1 -1
  614. package/dist/schema/base.js +19 -1
  615. package/dist/schema/build-up.d.ts +247 -0
  616. package/dist/schema/build-up.d.ts.map +1 -0
  617. package/dist/schema/build-up.js +83 -0
  618. package/dist/schema/geometry-source.d.ts +80 -0
  619. package/dist/schema/geometry-source.d.ts.map +1 -1
  620. package/dist/schema/geometry-source.js +38 -0
  621. package/dist/schema/index.d.ts +12 -7
  622. package/dist/schema/index.d.ts.map +1 -1
  623. package/dist/schema/index.js +12 -6
  624. package/dist/schema/material.d.ts +5 -0
  625. package/dist/schema/material.d.ts.map +1 -1
  626. package/dist/schema/material.js +6 -0
  627. package/dist/schema/nodes/beam.d.ts +264 -0
  628. package/dist/schema/nodes/beam.d.ts.map +1 -0
  629. package/dist/schema/nodes/beam.js +139 -0
  630. package/dist/schema/nodes/box-vent.d.ts +5 -0
  631. package/dist/schema/nodes/box-vent.d.ts.map +1 -1
  632. package/dist/schema/nodes/cabinet.d.ts +10 -0
  633. package/dist/schema/nodes/cabinet.d.ts.map +1 -1
  634. package/dist/schema/nodes/ceiling.d.ts +48 -0
  635. package/dist/schema/nodes/ceiling.d.ts.map +1 -1
  636. package/dist/schema/nodes/ceiling.js +5 -0
  637. package/dist/schema/nodes/chimney.d.ts +10 -0
  638. package/dist/schema/nodes/chimney.d.ts.map +1 -1
  639. package/dist/schema/nodes/column.d.ts +42 -0
  640. package/dist/schema/nodes/column.d.ts.map +1 -1
  641. package/dist/schema/nodes/column.js +11 -1
  642. package/dist/schema/nodes/cupola.d.ts +5 -0
  643. package/dist/schema/nodes/cupola.d.ts.map +1 -1
  644. package/dist/schema/nodes/door.d.ts +54 -3
  645. package/dist/schema/nodes/door.d.ts.map +1 -1
  646. package/dist/schema/nodes/door.js +41 -7
  647. package/dist/schema/nodes/dormer.d.ts +20 -0
  648. package/dist/schema/nodes/dormer.d.ts.map +1 -1
  649. package/dist/schema/nodes/downspout.d.ts +5 -0
  650. package/dist/schema/nodes/downspout.d.ts.map +1 -1
  651. package/dist/schema/nodes/elevator.d.ts +5 -0
  652. package/dist/schema/nodes/elevator.d.ts.map +1 -1
  653. package/dist/schema/nodes/eyebrow-vent.d.ts +5 -0
  654. package/dist/schema/nodes/eyebrow-vent.d.ts.map +1 -1
  655. package/dist/schema/nodes/fence.d.ts +5 -0
  656. package/dist/schema/nodes/fence.d.ts.map +1 -1
  657. package/dist/schema/nodes/guide.d.ts +14 -0
  658. package/dist/schema/nodes/guide.d.ts.map +1 -1
  659. package/dist/schema/nodes/guide.js +2 -0
  660. package/dist/schema/nodes/gutter.d.ts +5 -0
  661. package/dist/schema/nodes/gutter.d.ts.map +1 -1
  662. package/dist/schema/nodes/item.d.ts +71 -0
  663. package/dist/schema/nodes/item.d.ts.map +1 -1
  664. package/dist/schema/nodes/item.js +5 -1
  665. package/dist/schema/nodes/level.d.ts +1 -1
  666. package/dist/schema/nodes/level.d.ts.map +1 -1
  667. package/dist/schema/nodes/opening-types.d.ts +13 -0
  668. package/dist/schema/nodes/opening-types.d.ts.map +1 -1
  669. package/dist/schema/nodes/opening-types.js +8 -1
  670. package/dist/schema/nodes/railing-wall.d.ts +112 -0
  671. package/dist/schema/nodes/railing-wall.d.ts.map +1 -0
  672. package/dist/schema/nodes/railing-wall.js +160 -0
  673. package/dist/schema/nodes/ridge-vent.d.ts +5 -0
  674. package/dist/schema/nodes/ridge-vent.d.ts.map +1 -1
  675. package/dist/schema/nodes/roof-segment.d.ts +224 -1
  676. package/dist/schema/nodes/roof-segment.d.ts.map +1 -1
  677. package/dist/schema/nodes/roof-segment.js +57 -10
  678. package/dist/schema/nodes/roof-types.d.ts +11 -0
  679. package/dist/schema/nodes/roof-types.d.ts.map +1 -1
  680. package/dist/schema/nodes/roof-types.js +6 -0
  681. package/dist/schema/nodes/roof.d.ts +60 -0
  682. package/dist/schema/nodes/roof.d.ts.map +1 -1
  683. package/dist/schema/nodes/roof.js +4 -0
  684. package/dist/schema/nodes/shelf.d.ts +5 -0
  685. package/dist/schema/nodes/shelf.d.ts.map +1 -1
  686. package/dist/schema/nodes/site.d.ts +80 -0
  687. package/dist/schema/nodes/site.d.ts.map +1 -1
  688. package/dist/schema/nodes/site.js +7 -0
  689. package/dist/schema/nodes/skylight.d.ts +10 -0
  690. package/dist/schema/nodes/skylight.d.ts.map +1 -1
  691. package/dist/schema/nodes/slab.d.ts +137 -0
  692. package/dist/schema/nodes/slab.d.ts.map +1 -1
  693. package/dist/schema/nodes/slab.js +3 -0
  694. package/dist/schema/nodes/solar-panel.d.ts +10 -0
  695. package/dist/schema/nodes/solar-panel.d.ts.map +1 -1
  696. package/dist/schema/nodes/stair-segment.d.ts +5 -0
  697. package/dist/schema/nodes/stair-segment.d.ts.map +1 -1
  698. package/dist/schema/nodes/stair-structure.d.ts +69 -0
  699. package/dist/schema/nodes/stair-structure.d.ts.map +1 -0
  700. package/dist/schema/nodes/stair-structure.js +39 -0
  701. package/dist/schema/nodes/stair.d.ts +46 -0
  702. package/dist/schema/nodes/stair.d.ts.map +1 -1
  703. package/dist/schema/nodes/stair.js +3 -0
  704. package/dist/schema/nodes/turbine-vent.d.ts +5 -0
  705. package/dist/schema/nodes/turbine-vent.d.ts.map +1 -1
  706. package/dist/schema/nodes/wall.d.ts +135 -2
  707. package/dist/schema/nodes/wall.d.ts.map +1 -1
  708. package/dist/schema/nodes/wall.js +42 -6
  709. package/dist/schema/nodes/window.d.ts +66 -1
  710. package/dist/schema/nodes/window.d.ts.map +1 -1
  711. package/dist/schema/nodes/window.js +50 -5
  712. package/dist/schema/nodes/zone.d.ts +68 -0
  713. package/dist/schema/nodes/zone.d.ts.map +1 -1
  714. package/dist/schema/nodes/zone.js +32 -0
  715. package/dist/schema/scene-material.d.ts +5 -0
  716. package/dist/schema/scene-material.d.ts.map +1 -1
  717. package/dist/schema/types.d.ts +1079 -4
  718. package/dist/schema/types.d.ts.map +1 -1
  719. package/dist/schema/types.js +2 -0
  720. package/dist/schema/wall-type.d.ts +95 -0
  721. package/dist/schema/wall-type.d.ts.map +1 -0
  722. package/dist/schema/wall-type.js +32 -0
  723. package/dist/services/roof-bearing.d.ts.map +1 -1
  724. package/dist/services/roof-bearing.js +6 -3
  725. package/dist/services/roof-level.d.ts.map +1 -1
  726. package/dist/services/roof-level.js +4 -3
  727. package/dist/services/roof-move.d.ts.map +1 -1
  728. package/dist/services/roof-move.js +13 -7
  729. package/dist/services/storey.d.ts.map +1 -1
  730. package/dist/services/storey.js +13 -8
  731. package/dist/spatial/usage-field/beds.d.ts +51 -0
  732. package/dist/spatial/usage-field/beds.d.ts.map +1 -0
  733. package/dist/spatial/usage-field/beds.js +346 -0
  734. package/dist/spatial/usage-field/blocked.d.ts +28 -0
  735. package/dist/spatial/usage-field/blocked.d.ts.map +1 -0
  736. package/dist/spatial/usage-field/blocked.js +185 -0
  737. package/dist/spatial/usage-field/boxes.d.ts +17 -0
  738. package/dist/spatial/usage-field/boxes.d.ts.map +1 -0
  739. package/dist/spatial/usage-field/boxes.js +82 -0
  740. package/dist/spatial/usage-field/catalogue-shapes.d.ts +3 -0
  741. package/dist/spatial/usage-field/catalogue-shapes.d.ts.map +1 -0
  742. package/dist/spatial/usage-field/catalogue-shapes.js +257 -0
  743. package/dist/spatial/usage-field/catalogue.d.ts +6 -0
  744. package/dist/spatial/usage-field/catalogue.d.ts.map +1 -0
  745. package/dist/spatial/usage-field/catalogue.js +11 -0
  746. package/dist/spatial/usage-field/clash.d.ts +40 -0
  747. package/dist/spatial/usage-field/clash.d.ts.map +1 -0
  748. package/dist/spatial/usage-field/clash.js +187 -0
  749. package/dist/spatial/usage-field/door-stairs.d.ts +18 -0
  750. package/dist/spatial/usage-field/door-stairs.d.ts.map +1 -0
  751. package/dist/spatial/usage-field/door-stairs.js +129 -0
  752. package/dist/spatial/usage-field/entry-way.d.ts +14 -0
  753. package/dist/spatial/usage-field/entry-way.d.ts.map +1 -0
  754. package/dist/spatial/usage-field/entry-way.js +219 -0
  755. package/dist/spatial/usage-field/fences.d.ts +18 -0
  756. package/dist/spatial/usage-field/fences.d.ts.map +1 -0
  757. package/dist/spatial/usage-field/fences.js +253 -0
  758. package/dist/spatial/usage-field/field.d.ts +44 -0
  759. package/dist/spatial/usage-field/field.d.ts.map +1 -0
  760. package/dist/spatial/usage-field/field.js +145 -0
  761. package/dist/spatial/usage-field/findings.d.ts +76 -0
  762. package/dist/spatial/usage-field/findings.d.ts.map +1 -0
  763. package/dist/spatial/usage-field/findings.js +252 -0
  764. package/dist/spatial/usage-field/fixtures.d.ts +18 -0
  765. package/dist/spatial/usage-field/fixtures.d.ts.map +1 -0
  766. package/dist/spatial/usage-field/fixtures.js +160 -0
  767. package/dist/spatial/usage-field/flag.d.ts +10 -0
  768. package/dist/spatial/usage-field/flag.d.ts.map +1 -0
  769. package/dist/spatial/usage-field/flag.js +12 -0
  770. package/dist/spatial/usage-field/floors.d.ts +13 -0
  771. package/dist/spatial/usage-field/floors.d.ts.map +1 -0
  772. package/dist/spatial/usage-field/floors.js +36 -0
  773. package/dist/spatial/usage-field/index.d.ts +7 -0
  774. package/dist/spatial/usage-field/index.d.ts.map +1 -0
  775. package/dist/spatial/usage-field/index.js +5 -0
  776. package/dist/spatial/usage-field/items.d.ts +38 -0
  777. package/dist/spatial/usage-field/items.d.ts.map +1 -0
  778. package/dist/spatial/usage-field/items.js +261 -0
  779. package/dist/spatial/usage-field/labels.d.ts +8 -0
  780. package/dist/spatial/usage-field/labels.d.ts.map +1 -0
  781. package/dist/spatial/usage-field/labels.js +14 -0
  782. package/dist/spatial/usage-field/level-field.d.ts +47 -0
  783. package/dist/spatial/usage-field/level-field.d.ts.map +1 -0
  784. package/dist/spatial/usage-field/level-field.js +96 -0
  785. package/dist/spatial/usage-field/measure.d.ts +324 -0
  786. package/dist/spatial/usage-field/measure.d.ts.map +1 -0
  787. package/dist/spatial/usage-field/measure.js +458 -0
  788. package/dist/spatial/usage-field/obstacles.d.ts +63 -0
  789. package/dist/spatial/usage-field/obstacles.d.ts.map +1 -0
  790. package/dist/spatial/usage-field/obstacles.js +215 -0
  791. package/dist/spatial/usage-field/openings.d.ts +12 -0
  792. package/dist/spatial/usage-field/openings.d.ts.map +1 -0
  793. package/dist/spatial/usage-field/openings.js +162 -0
  794. package/dist/spatial/usage-field/path.d.ts +48 -0
  795. package/dist/spatial/usage-field/path.d.ts.map +1 -0
  796. package/dist/spatial/usage-field/path.js +354 -0
  797. package/dist/spatial/usage-field/pieces.d.ts +27 -0
  798. package/dist/spatial/usage-field/pieces.d.ts.map +1 -0
  799. package/dist/spatial/usage-field/pieces.js +89 -0
  800. package/dist/spatial/usage-field/shapes.d.ts +18 -0
  801. package/dist/spatial/usage-field/shapes.d.ts.map +1 -0
  802. package/dist/spatial/usage-field/shapes.js +92 -0
  803. package/dist/spatial/usage-field/stairs.d.ts +23 -0
  804. package/dist/spatial/usage-field/stairs.d.ts.map +1 -0
  805. package/dist/spatial/usage-field/stairs.js +163 -0
  806. package/dist/spatial/usage-field/support.d.ts +24 -0
  807. package/dist/spatial/usage-field/support.d.ts.map +1 -0
  808. package/dist/spatial/usage-field/support.js +46 -0
  809. package/dist/spatial/usage-field/swings.d.ts +846 -0
  810. package/dist/spatial/usage-field/swings.d.ts.map +1 -0
  811. package/dist/spatial/usage-field/swings.js +427 -0
  812. package/dist/spatial/usage-field/types.d.ts +65 -0
  813. package/dist/spatial/usage-field/types.d.ts.map +1 -0
  814. package/dist/spatial/usage-field/types.js +1 -0
  815. package/dist/spatial/usage-field/walls.d.ts +1057 -0
  816. package/dist/spatial/usage-field/walls.d.ts.map +1 -0
  817. package/dist/spatial/usage-field/walls.js +166 -0
  818. package/dist/spatial/usage-field/way-in.d.ts +26 -0
  819. package/dist/spatial/usage-field/way-in.d.ts.map +1 -0
  820. package/dist/spatial/usage-field/way-in.js +113 -0
  821. package/dist/store/actions/node-actions.d.ts +2124 -1322
  822. package/dist/store/actions/node-actions.d.ts.map +1 -1
  823. package/dist/store/actions/node-actions.js +42 -16
  824. package/dist/store/derived-node-guard.d.ts +10 -2
  825. package/dist/store/derived-node-guard.d.ts.map +1 -1
  826. package/dist/store/derived-node-guard.js +31 -11
  827. package/dist/store/document-settling.d.ts +9 -0
  828. package/dist/store/document-settling.d.ts.map +1 -0
  829. package/dist/store/document-settling.js +22 -0
  830. package/dist/store/history-control.d.ts +19 -10
  831. package/dist/store/history-control.d.ts.map +1 -1
  832. package/dist/store/history-control.js +176 -127
  833. package/dist/store/history-drafts.d.ts.map +1 -1
  834. package/dist/store/history-drafts.js +21 -17
  835. package/dist/store/live-previews.d.ts +9 -0
  836. package/dist/store/live-previews.d.ts.map +1 -0
  837. package/dist/store/live-previews.js +19 -0
  838. package/dist/store/scene-annotations.d.ts +6751 -5151
  839. package/dist/store/scene-annotations.d.ts.map +1 -1
  840. package/dist/store/scene-environment.d.ts +33 -0
  841. package/dist/store/scene-environment.d.ts.map +1 -0
  842. package/dist/store/scene-environment.js +54 -0
  843. package/dist/store/scene-hydration.d.ts.map +1 -1
  844. package/dist/store/scene-hydration.js +41 -30
  845. package/dist/store/use-interactive.d.ts +9 -3
  846. package/dist/store/use-interactive.d.ts.map +1 -1
  847. package/dist/store/use-interactive.js +43 -11
  848. package/dist/store/use-live-node-overrides.d.ts.map +1 -1
  849. package/dist/store/use-live-node-overrides.js +3 -0
  850. package/dist/store/use-scene.d.ts +25 -0
  851. package/dist/store/use-scene.d.ts.map +1 -1
  852. package/dist/store/use-scene.js +408 -336
  853. package/dist/systems/document-reconcile.d.ts +40 -0
  854. package/dist/systems/document-reconcile.d.ts.map +1 -0
  855. package/dist/systems/document-reconcile.js +159 -0
  856. package/dist/systems/elevator/elevator-opening-system.d.ts.map +1 -1
  857. package/dist/systems/elevator/elevator-opening-system.js +9 -24
  858. package/dist/systems/fence/guard-layout.d.ts +69 -0
  859. package/dist/systems/fence/guard-layout.d.ts.map +1 -0
  860. package/dist/systems/fence/guard-layout.js +194 -0
  861. package/dist/systems/owned-floor-openings.d.ts +13 -1
  862. package/dist/systems/owned-floor-openings.d.ts.map +1 -1
  863. package/dist/systems/owned-floor-openings.js +58 -2
  864. package/dist/systems/reconcile-owned-floor-openings.d.ts +3 -1
  865. package/dist/systems/reconcile-owned-floor-openings.d.ts.map +1 -1
  866. package/dist/systems/reconcile-owned-floor-openings.js +4 -4
  867. package/dist/systems/roof/roof-elevation-system.d.ts.map +1 -1
  868. package/dist/systems/roof/roof-elevation-system.js +8 -26
  869. package/dist/systems/roof/roof-elevation.d.ts +16 -1
  870. package/dist/systems/roof/roof-elevation.d.ts.map +1 -1
  871. package/dist/systems/roof/roof-elevation.js +85 -4
  872. package/dist/systems/roof/roof-footprint.d.ts +42 -1
  873. package/dist/systems/roof/roof-footprint.d.ts.map +1 -1
  874. package/dist/systems/roof/roof-footprint.js +160 -4
  875. package/dist/systems/slab/__fixtures__/floor-step.d.ts +3163 -1934
  876. package/dist/systems/slab/__fixtures__/floor-step.d.ts.map +1 -1
  877. package/dist/systems/slab/__fixtures__/raised-room.d.ts +2495 -1249
  878. package/dist/systems/slab/__fixtures__/raised-room.d.ts.map +1 -1
  879. package/dist/systems/stair/stair-clearance.d.ts +7 -0
  880. package/dist/systems/stair/stair-clearance.d.ts.map +1 -1
  881. package/dist/systems/stair/stair-clearance.js +31 -11
  882. package/dist/systems/stair/stair-construction.d.ts +8 -3
  883. package/dist/systems/stair/stair-construction.d.ts.map +1 -1
  884. package/dist/systems/stair/stair-construction.js +55 -4
  885. package/dist/systems/stair/stair-opening-preview.d.ts +889 -89
  886. package/dist/systems/stair/stair-opening-preview.d.ts.map +1 -1
  887. package/dist/systems/stair/stair-opening-system.d.ts.map +1 -1
  888. package/dist/systems/stair/stair-opening-system.js +18 -34
  889. package/dist/systems/stair/stair-presets.d.ts +36 -0
  890. package/dist/systems/stair/stair-presets.d.ts.map +1 -1
  891. package/dist/systems/stair/stair-rise-query.d.ts.map +1 -1
  892. package/dist/systems/stair/stair-rise-query.js +3 -2
  893. package/dist/systems/stair/stair-rise.d.ts.map +1 -1
  894. package/dist/systems/stair/stair-rise.js +6 -0
  895. package/dist/systems/stair/stair-sizing.d.ts +42 -11
  896. package/dist/systems/stair/stair-sizing.d.ts.map +1 -1
  897. package/dist/systems/stair/stair-sizing.js +10 -1
  898. package/dist/systems/stair/stair-structure.d.ts +277 -0
  899. package/dist/systems/stair/stair-structure.d.ts.map +1 -0
  900. package/dist/systems/stair/stair-structure.js +496 -0
  901. package/dist/systems/wall/wall-assembly.d.ts +84 -6
  902. package/dist/systems/wall/wall-assembly.d.ts.map +1 -1
  903. package/dist/systems/wall/wall-assembly.js +204 -5
  904. package/dist/systems/wall/wall-finish.d.ts +38 -2
  905. package/dist/systems/wall/wall-finish.d.ts.map +1 -1
  906. package/dist/systems/wall/wall-finish.js +70 -2
  907. package/dist/systems/wall/wall-footprint.js +2 -2
  908. package/dist/systems/wall/wall-merge.d.ts.map +1 -1
  909. package/dist/systems/wall/wall-merge.js +28 -7
  910. package/dist/systems/wall/wall-mitering.d.ts +1 -0
  911. package/dist/systems/wall/wall-mitering.d.ts.map +1 -1
  912. package/dist/systems/wall/wall-mitering.js +152 -52
  913. package/dist/systems/wall/wall-move.d.ts +23 -6
  914. package/dist/systems/wall/wall-move.d.ts.map +1 -1
  915. package/dist/systems/wall/wall-move.js +65 -0
  916. package/dist/systems/wall/wall-top.d.ts +2 -2
  917. package/dist/systems/wall/wall-top.d.ts.map +1 -1
  918. package/dist/systems/wall/wall-top.js +6 -1
  919. package/dist/systems/wall/wall-topology.d.ts +32 -1
  920. package/dist/systems/wall/wall-topology.d.ts.map +1 -1
  921. package/dist/systems/wall/wall-topology.js +118 -10
  922. package/dist/systems/wall/wall-trim-profiles.d.ts +12 -0
  923. package/dist/systems/wall/wall-trim-profiles.d.ts.map +1 -0
  924. package/dist/systems/wall/wall-trim-profiles.js +191 -0
  925. package/dist/utils/ensure-scene-openings.d.ts +6523 -4923
  926. package/dist/utils/ensure-scene-openings.d.ts.map +1 -1
  927. package/dist/utils/floor-piece-adoption.d.ts +5 -0
  928. package/dist/utils/floor-piece-adoption.d.ts.map +1 -1
  929. package/dist/utils/floor-plate-migration.d.ts +1930 -1130
  930. package/dist/utils/floor-plate-migration.d.ts.map +1 -1
  931. package/dist/utils/owned-floor-opening-migration.d.ts +888 -88
  932. package/dist/utils/owned-floor-opening-migration.d.ts.map +1 -1
  933. package/dist/utils/reconcile-structure-on-load.d.ts +1930 -1130
  934. package/dist/utils/reconcile-structure-on-load.d.ts.map +1 -1
  935. package/dist/utils/structure-id.d.ts.map +1 -1
  936. package/dist/utils/structure-id.js +4 -0
  937. package/package.json +22 -5
  938. package/dist/lib/generic-foundation.d.ts +0 -40
  939. package/dist/lib/generic-foundation.d.ts.map +0 -1
  940. package/dist/lib/generic-foundation.js +0 -200
@@ -60,29 +60,18 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
60
60
  fromIds: string[];
61
61
  } | undefined;
62
62
  } | undefined;
63
- id: `block_${string}`;
64
- children: string[];
65
- position: [number, number, number];
66
- rotation: number;
63
+ id: `beam_${string}`;
64
+ start: [number, number];
65
+ end: [number, number];
66
+ width: number;
67
+ depth: number;
68
+ size?: string | undefined;
69
+ plies: number;
70
+ material: "glulam" | "lvl" | "pressure-treated" | "sawn" | "steel";
71
+ placement: "dropped" | "flush";
72
+ topElevation?: number | undefined;
67
73
  supportSlabId?: string | undefined;
68
- topology: {
69
- vertices: {
70
- id: string;
71
- position: [number, number, number];
72
- }[];
73
- edges: {
74
- id: string;
75
- vertexIds: [string, string];
76
- }[];
77
- faces: {
78
- id: string;
79
- vertexIds: string[];
80
- materialSlot: string;
81
- }[];
82
- };
83
- slots: Record<string, string>;
84
- slotNames: Record<string, string>;
85
- type: "block";
74
+ type: "beam";
86
75
  } | {
87
76
  object: "node";
88
77
  name?: string | undefined;
@@ -107,196 +96,89 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
107
96
  fromIds: string[];
108
97
  } | undefined;
109
98
  } | undefined;
110
- id: `column_${string}`;
111
- children: string[];
112
- position: [number, number, number];
113
- rotation: number;
114
- supportSlabId?: string | undefined;
115
- source?: {
116
- kind: "script";
117
- meta?: {
118
- description?: string | undefined;
119
- category?: string | undefined;
120
- tags?: string[] | undefined;
121
- parent?: string | undefined;
122
- } | undefined;
123
- language: "bpy" | "three";
124
- script: string;
125
- params: Record<string, string | number | boolean>;
126
- artifact: string;
127
- manifest: {
128
- bounds: {
129
- min: [number, number, number];
130
- max: [number, number, number];
99
+ id: `measurement_${string}`;
100
+ measurement: {
101
+ kind: "volume";
102
+ base: ({
103
+ kind: "feature";
104
+ reference: {
105
+ nodeId: string;
106
+ featureId: string;
107
+ parameters?: Record<string, string | number | boolean> | undefined;
131
108
  };
132
- params: {
133
- id: string;
134
- label?: string | undefined;
135
- kind: "boolean" | "number" | "string";
136
- default: string | number | boolean;
137
- min?: number | undefined;
138
- max?: number | undefined;
139
- step?: number | undefined;
140
- unit?: string | undefined;
141
- options?: string[] | undefined;
142
- }[];
143
- parts: {
144
- id: string;
145
- label?: string | undefined;
146
- type?: string | undefined;
147
- bounds?: {
148
- min: [number, number, number];
149
- max: [number, number, number];
150
- } | undefined;
151
- }[];
152
- surfaces: {
153
- part?: string | undefined;
154
- y: number;
155
- polygon: [number, number][];
156
- }[];
157
- slots: {
158
- id: string;
159
- label?: string | undefined;
160
- color?: string | undefined;
161
- roughness?: number | undefined;
162
- metalness?: number | undefined;
163
- transparent?: boolean | undefined;
164
- emissive?: boolean | undefined;
165
- }[];
166
- anchors: {
167
- id: string;
168
- position: [number, number, number];
169
- normal?: [number, number, number] | undefined;
170
- }[];
171
- lights: {
172
- id: string;
173
- position: [number, number, number];
174
- color: string;
175
- intensity: number;
176
- distance?: number | undefined;
177
- }[];
178
- undersides: {
179
- part?: string | undefined;
180
- polygon: [number, number][];
181
- plane: [number, number, number, number];
182
- }[];
183
- animations: {
184
- name: string;
185
- duration: number;
186
- }[];
187
- cutters?: {
188
- host: "ceiling" | "mounted" | "slab" | "wall";
189
- polygon: number[][];
190
- minY: number;
191
- maxY: number;
192
- }[] | undefined;
193
- cutout: boolean;
194
- collider: boolean;
195
- triangles: number;
196
- coverage?: number | undefined;
197
- uncovered?: {
198
- min: [number, number];
199
- max: [number, number];
200
- }[] | undefined;
201
- };
202
- images?: {
203
- artifact: string;
204
- thumbnail: string;
205
- floorPlan: string;
206
- } | undefined;
207
- } | undefined;
208
- style: "cluster" | "dravidian-carved" | "faceted" | "fluted" | "lathe-turned" | "plain";
209
- crossSection: "octagonal" | "rectangular" | "round" | "sixteen-sided" | "square";
210
- height: number;
211
- radius: number;
212
- width: number;
213
- depth: number;
214
- edgeSoftness: number;
215
- baseHeight: number;
216
- capitalHeight: number;
217
- shaftProfile: "baluster" | "bulged" | "hourglass" | "straight" | "tapered";
218
- shaftTaper: number;
219
- shaftBulge: number;
220
- shaftStartScale: number;
221
- shaftEndScale: number;
222
- shaftSegmentCount: number;
223
- shaftTwistStep: number;
224
- shaftCornerRadius: number;
225
- shaftDetail: "fluted" | "lathe-turned" | "none" | "panelled" | "spiral";
226
- baseStyle: "lotus" | "none" | "panelled-pedestal" | "ribbed-lotus" | "round-rings" | "simple-square" | "square-plinth" | "stepped-square";
227
- baseWidthScale: number;
228
- baseDepthScale: number;
229
- baseTierCount: number;
230
- baseStepSpread: number;
231
- basePlinthHeightRatio: number;
232
- baseRoundBandScale: number;
233
- baseNeckScale: number;
234
- baseRoundBandCount: number;
235
- baseRibCount: number;
236
- baseCarvingLevel: number;
237
- basePanelInset: number;
238
- capitalStyle: "corinthian-leaf" | "doric" | "ionic-volute" | "leaf-carved" | "none" | "rounded" | "simple" | "simple-slab" | "south-indian-bracket" | "stepped" | "volute" | "wood-bracket";
239
- capitalWidthScale: number;
240
- capitalDepthScale: number;
241
- capitalTierCount: number;
242
- capitalStepSpread: number;
243
- capitalBandCount: number;
244
- voluteSize: number;
245
- voluteCount: number;
246
- leafCount: number;
247
- leafRows: number;
248
- bracketDepth: number;
249
- bracketTierCount: number;
250
- pendantCount: number;
251
- capitalCarvingLevel: number;
252
- ringCount: number;
253
- ringPlacement: "bottom" | "ends" | "even" | "top";
254
- ringThickness: number;
255
- ringSpread: number;
256
- fluteCount: number;
257
- fluteDepth: number;
258
- fluteWidth: number;
259
- spiralTwist: number;
260
- spiralRibCount: number;
261
- panelCount: number;
262
- panelInsetDepth: number;
263
- panelShape: "arched" | "diamond" | "rectangle";
264
- latheRingCount: number;
265
- latheRingSpacing: "bottom" | "ends" | "even" | "top";
266
- carvingLevel: number;
267
- carvingPlacement: "all" | "base" | "capital" | "shaft";
268
- lowerBandEnabled: boolean;
269
- lowerBandHeight: number;
270
- lowerBandCarvingLevel: number;
271
- dentilCount: number;
272
- beadCount: number;
273
- supportStyle: "a-frame" | "box-frame" | "k-brace" | "portal-frame" | "single-strut" | "trestle" | "tripod" | "v-frame" | "vertical" | "x-brace" | "y-frame";
274
- braceWidth: number;
275
- braceDepth: number;
276
- braceBottomSpread: number;
277
- braceTopSpread: number;
278
- bracePlateEnabled: boolean;
279
- role?: "ornament" | undefined;
280
- material?: {
281
- id?: string | undefined;
282
- preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
283
- properties?: {
284
- color: string;
285
- roughness: number;
286
- metalness: number;
287
- opacity: number;
288
- transparent: boolean;
289
- side: "back" | "double" | "front";
290
- } | undefined;
291
- texture?: {
292
- url: string;
293
- repeat?: [number, number] | undefined;
294
- scale?: number | undefined;
295
- } | undefined;
296
- } | undefined;
297
- materialPreset?: string | undefined;
298
- slots?: Record<string, string> | undefined;
299
- type: "column";
109
+ fallback: [number, number, number];
110
+ } | [number, number, number])[];
111
+ extrusion: [number, number, number];
112
+ } | {
113
+ kind: "distance";
114
+ points: [{
115
+ kind: "feature";
116
+ reference: {
117
+ nodeId: string;
118
+ featureId: string;
119
+ parameters?: Record<string, string | number | boolean> | undefined;
120
+ };
121
+ fallback: [number, number, number];
122
+ } | [number, number, number], {
123
+ kind: "feature";
124
+ reference: {
125
+ nodeId: string;
126
+ featureId: string;
127
+ parameters?: Record<string, string | number | boolean> | undefined;
128
+ };
129
+ fallback: [number, number, number];
130
+ } | [number, number, number]];
131
+ } | {
132
+ kind: "angle";
133
+ points: [{
134
+ kind: "feature";
135
+ reference: {
136
+ nodeId: string;
137
+ featureId: string;
138
+ parameters?: Record<string, string | number | boolean> | undefined;
139
+ };
140
+ fallback: [number, number, number];
141
+ } | [number, number, number], {
142
+ kind: "feature";
143
+ reference: {
144
+ nodeId: string;
145
+ featureId: string;
146
+ parameters?: Record<string, string | number | boolean> | undefined;
147
+ };
148
+ fallback: [number, number, number];
149
+ } | [number, number, number], {
150
+ kind: "feature";
151
+ reference: {
152
+ nodeId: string;
153
+ featureId: string;
154
+ parameters?: Record<string, string | number | boolean> | undefined;
155
+ };
156
+ fallback: [number, number, number];
157
+ } | [number, number, number]];
158
+ } | {
159
+ kind: "area";
160
+ base: ({
161
+ kind: "feature";
162
+ reference: {
163
+ nodeId: string;
164
+ featureId: string;
165
+ parameters?: Record<string, string | number | boolean> | undefined;
166
+ };
167
+ fallback: [number, number, number];
168
+ } | [number, number, number])[];
169
+ } | {
170
+ kind: "perimeter";
171
+ base: ({
172
+ kind: "feature";
173
+ reference: {
174
+ nodeId: string;
175
+ featureId: string;
176
+ parameters?: Record<string, string | number | boolean> | undefined;
177
+ };
178
+ fallback: [number, number, number];
179
+ } | [number, number, number])[];
180
+ };
181
+ type: "measurement";
300
182
  } | {
301
183
  object: "node";
302
184
  name?: string | undefined;
@@ -321,29 +203,72 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
321
203
  fromIds: string[];
322
204
  } | undefined;
323
205
  } | undefined;
324
- id: `duct-fitting_${string}`;
325
- position: [number, number, number];
326
- rotation: [number, number, number];
327
- fittingType: "access-panel" | "coupling" | "cross" | "damper" | "elbow" | "end-cap" | "reducer" | "tee" | "transition";
206
+ id: `duct-segment_${string}`;
207
+ path: [number, number, number][];
208
+ autoHangers?: boolean | undefined;
209
+ hangerOverrides?: Record<string, {
210
+ fraction?: number | undefined;
211
+ skipped?: boolean | undefined;
212
+ hostId?: string | undefined;
213
+ }> | undefined;
214
+ hangerStyle?: "double" | "single" | undefined;
215
+ hangerSpacing?: number | undefined;
216
+ hangerMaxReach?: number | undefined;
217
+ wallAttachment?: {
218
+ wallId: `wall_${string}`;
219
+ side: "back" | "front";
220
+ startUV: [number, number];
221
+ endUV: [number, number];
222
+ offset: number;
223
+ } | undefined;
328
224
  shape: "oval" | "rect" | "round";
329
- inletShape?: "oval" | "rect" | "round" | undefined;
330
- outletShape?: "oval" | "rect" | "round" | undefined;
225
+ diameter: number;
331
226
  width: number;
332
227
  height: number;
333
- shape2: "oval" | "rect" | "round";
334
- width2: number;
335
- height2: number;
336
- angle: number;
337
- branchAngle: number;
338
- diameter: number;
339
- diameter2: number;
340
- ductMaterial: "duct-board" | "flex" | "sheet-metal";
228
+ roll: number;
229
+ ductMaterial: "duct-board" | "flex" | "sheet-metal" | "spiral";
230
+ seamDetail: boolean;
231
+ insulated: boolean;
232
+ insulationR: number;
341
233
  system: "return" | "supply";
342
- damperAngle: number;
343
- panelWidth: number;
344
- panelHeight: number;
345
234
  slots?: Record<string, string> | undefined;
346
- type: "duct-fitting";
235
+ type: "duct-segment";
236
+ } | {
237
+ object: "node";
238
+ name?: string | undefined;
239
+ parentId: string | null;
240
+ visible: boolean;
241
+ camera?: {
242
+ position: [number, number, number];
243
+ target: [number, number, number];
244
+ mode: "orthographic" | "perspective";
245
+ fov?: number | undefined;
246
+ zoom?: number | undefined;
247
+ } | undefined;
248
+ metadata: Record<string, unknown>;
249
+ provenance?: {
250
+ refs: {
251
+ ns?: string | undefined;
252
+ id: string;
253
+ role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
254
+ }[];
255
+ lineage?: {
256
+ op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
257
+ fromIds: string[];
258
+ } | undefined;
259
+ } | undefined;
260
+ id: `floor-opening_${string}`;
261
+ polygon: [number, number][];
262
+ hostZoneId?: string | undefined;
263
+ legacyPlateCuts?: Record<string, [number, number][][]> | undefined;
264
+ legacyCeilingCuts?: Record<string, [number, number][][]> | undefined;
265
+ source: string;
266
+ ownerId?: string | undefined;
267
+ surfaceId?: string | undefined;
268
+ drawnOn: "ceiling" | "floor";
269
+ cutsPrimary: boolean;
270
+ cutsAdjacent: boolean;
271
+ type: "floor-opening";
347
272
  } | {
348
273
  object: "node";
349
274
  name?: string | undefined;
@@ -368,23 +293,12 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
368
293
  fromIds: string[];
369
294
  } | undefined;
370
295
  } | undefined;
371
- id: `hvac-equipment_${string}`;
372
- position: [number, number, number];
373
- rotation: number;
374
- supportSlabId?: string | undefined;
375
- equipmentType: "air-handler" | "condenser" | "furnace";
376
- width: number;
377
- depth: number;
378
- height: number;
379
- supplyShape: "oval" | "rect" | "round";
380
- returnShape: "oval" | "rect" | "round";
381
- supplyDiameter: number;
382
- returnDiameter: number;
383
- supplyWidth: number;
384
- supplyHeight: number;
385
- returnWidth: number;
386
- returnHeight: number;
387
- type: "hvac-equipment";
296
+ id: `lineset_${string}`;
297
+ path: [number, number, number][];
298
+ suctionDiameter: number;
299
+ liquidDiameter: number;
300
+ insulated: boolean;
301
+ type: "lineset";
388
302
  } | {
389
303
  object: "node";
390
304
  name?: string | undefined;
@@ -409,17 +323,13 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
409
323
  fromIds: string[];
410
324
  } | undefined;
411
325
  } | undefined;
412
- id: `pipe-fitting_${string}`;
326
+ id: `pipe-trap_${string}`;
413
327
  position: [number, number, number];
414
- rotation: [number, number, number];
415
- fittingType: "cleanout" | "coupling" | "cross" | "elbow" | "end-cap" | "reducer" | "sanitary-tee" | "wye";
416
- angle: number;
328
+ rotation: number;
417
329
  diameter: number;
418
- diameter2: number;
419
- cleanoutStyle: "end" | "inline";
420
330
  pipeMaterial: "abs" | "cast-iron" | "pvc";
421
- system: "vent" | "waste";
422
- type: "pipe-fitting";
331
+ armLengthM: number;
332
+ type: "pipe-trap";
423
333
  } | {
424
334
  object: "node";
425
335
  name?: string | undefined;
@@ -460,6 +370,11 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
460
370
  url: string;
461
371
  repeat?: [number, number] | undefined;
462
372
  scale?: number | undefined;
373
+ offset?: [number, number] | undefined;
374
+ normalMap?: string | undefined;
375
+ normalScale?: number | undefined;
376
+ bumpMap?: string | undefined;
377
+ bumpScale?: number | undefined;
463
378
  } | undefined;
464
379
  } | undefined;
465
380
  materialPreset?: string | undefined;
@@ -478,6 +393,11 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
478
393
  url: string;
479
394
  repeat?: [number, number] | undefined;
480
395
  scale?: number | undefined;
396
+ offset?: [number, number] | undefined;
397
+ normalMap?: string | undefined;
398
+ normalScale?: number | undefined;
399
+ bumpMap?: string | undefined;
400
+ bumpScale?: number | undefined;
481
401
  } | undefined;
482
402
  } | undefined;
483
403
  topMaterialPreset?: string | undefined;
@@ -496,6 +416,11 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
496
416
  url: string;
497
417
  repeat?: [number, number] | undefined;
498
418
  scale?: number | undefined;
419
+ offset?: [number, number] | undefined;
420
+ normalMap?: string | undefined;
421
+ normalScale?: number | undefined;
422
+ bumpMap?: string | undefined;
423
+ bumpScale?: number | undefined;
499
424
  } | undefined;
500
425
  } | undefined;
501
426
  edgeMaterialPreset?: string | undefined;
@@ -514,6 +439,11 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
514
439
  url: string;
515
440
  repeat?: [number, number] | undefined;
516
441
  scale?: number | undefined;
442
+ offset?: [number, number] | undefined;
443
+ normalMap?: string | undefined;
444
+ normalScale?: number | undefined;
445
+ bumpMap?: string | undefined;
446
+ bumpScale?: number | undefined;
517
447
  } | undefined;
518
448
  } | undefined;
519
449
  wallMaterialPreset?: string | undefined;
@@ -583,6 +513,39 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
583
513
  overhang: number;
584
514
  gableOverhang?: number | undefined;
585
515
  shingleThickness: number;
516
+ buildUp?: {
517
+ presetId?: string | undefined;
518
+ roofing: {
519
+ kind: "architectural-shingle" | "asphalt-3-tab" | "clay-tile" | "concrete-tile" | "slate" | "standing-seam-metal" | "wood-shake";
520
+ thickness: number;
521
+ name?: string | undefined;
522
+ };
523
+ underlayment?: {
524
+ kind: "felt-15" | "felt-30" | "ice-and-water" | "synthetic";
525
+ thickness: number;
526
+ name?: string | undefined;
527
+ } | undefined;
528
+ sheathing: {
529
+ kind: "osb" | "plywood";
530
+ thickness: number;
531
+ name?: string | undefined;
532
+ };
533
+ structure: {
534
+ system: "rafters" | "trusses";
535
+ size: "2x10" | "2x12" | "2x4" | "2x6" | "2x8";
536
+ spacing: number;
537
+ };
538
+ insulation?: {
539
+ kind: "batt" | "blown" | "rigid";
540
+ thickness: number;
541
+ name?: string | undefined;
542
+ } | undefined;
543
+ finish?: {
544
+ kind: "drywall" | "plaster" | "wood-plank";
545
+ thickness: number;
546
+ name?: string | undefined;
547
+ } | undefined;
548
+ } | undefined;
586
549
  arc?: {
587
550
  centerX: number;
588
551
  centerZ: number;
@@ -604,6 +567,7 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
604
567
  wallShell: "auto" | "include" | "omit";
605
568
  shedInsetEndPanels: boolean;
606
569
  fascia?: boolean | undefined;
570
+ eaveCut?: "plumb" | "plumb-level" | "square" | undefined;
607
571
  fasciaHighEdge?: boolean | undefined;
608
572
  fasciaHeight?: number | undefined;
609
573
  fasciaDepth?: number | undefined;
@@ -622,9 +586,83 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
622
586
  url: string;
623
587
  repeat?: [number, number] | undefined;
624
588
  scale?: number | undefined;
589
+ offset?: [number, number] | undefined;
590
+ normalMap?: string | undefined;
591
+ normalScale?: number | undefined;
592
+ bumpMap?: string | undefined;
593
+ bumpScale?: number | undefined;
625
594
  } | undefined;
626
595
  } | undefined;
627
596
  fasciaMaterialPreset?: string | undefined;
597
+ heelMaterial?: {
598
+ id?: string | undefined;
599
+ preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
600
+ properties?: {
601
+ color: string;
602
+ roughness: number;
603
+ metalness: number;
604
+ opacity: number;
605
+ transparent: boolean;
606
+ side: "back" | "double" | "front";
607
+ } | undefined;
608
+ texture?: {
609
+ url: string;
610
+ repeat?: [number, number] | undefined;
611
+ scale?: number | undefined;
612
+ offset?: [number, number] | undefined;
613
+ normalMap?: string | undefined;
614
+ normalScale?: number | undefined;
615
+ bumpMap?: string | undefined;
616
+ bumpScale?: number | undefined;
617
+ } | undefined;
618
+ } | undefined;
619
+ heelMaterialPreset?: string | undefined;
620
+ gableLeftMaterial?: {
621
+ id?: string | undefined;
622
+ preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
623
+ properties?: {
624
+ color: string;
625
+ roughness: number;
626
+ metalness: number;
627
+ opacity: number;
628
+ transparent: boolean;
629
+ side: "back" | "double" | "front";
630
+ } | undefined;
631
+ texture?: {
632
+ url: string;
633
+ repeat?: [number, number] | undefined;
634
+ scale?: number | undefined;
635
+ offset?: [number, number] | undefined;
636
+ normalMap?: string | undefined;
637
+ normalScale?: number | undefined;
638
+ bumpMap?: string | undefined;
639
+ bumpScale?: number | undefined;
640
+ } | undefined;
641
+ } | undefined;
642
+ gableLeftMaterialPreset?: string | undefined;
643
+ gableRightMaterial?: {
644
+ id?: string | undefined;
645
+ preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
646
+ properties?: {
647
+ color: string;
648
+ roughness: number;
649
+ metalness: number;
650
+ opacity: number;
651
+ transparent: boolean;
652
+ side: "back" | "double" | "front";
653
+ } | undefined;
654
+ texture?: {
655
+ url: string;
656
+ repeat?: [number, number] | undefined;
657
+ scale?: number | undefined;
658
+ offset?: [number, number] | undefined;
659
+ normalMap?: string | undefined;
660
+ normalScale?: number | undefined;
661
+ bumpMap?: string | undefined;
662
+ bumpScale?: number | undefined;
663
+ } | undefined;
664
+ } | undefined;
665
+ gableRightMaterialPreset?: string | undefined;
628
666
  gambrelLowerWidthRatio: number;
629
667
  gambrelLowerHeightRatio: number;
630
668
  mansardSteepWidthRatio: number;
@@ -660,7 +698,64 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
660
698
  fromIds: string[];
661
699
  } | undefined;
662
700
  } | undefined;
663
- id: `slab_${string}`;
701
+ id: `separator_${string}`;
702
+ start: [number, number];
703
+ end: [number, number];
704
+ type: "separator";
705
+ } | {
706
+ object: "node";
707
+ name?: string | undefined;
708
+ parentId: string | null;
709
+ visible: boolean;
710
+ camera?: {
711
+ position: [number, number, number];
712
+ target: [number, number, number];
713
+ mode: "orthographic" | "perspective";
714
+ fov?: number | undefined;
715
+ zoom?: number | undefined;
716
+ } | undefined;
717
+ metadata: Record<string, unknown>;
718
+ provenance?: {
719
+ refs: {
720
+ ns?: string | undefined;
721
+ id: string;
722
+ role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
723
+ }[];
724
+ lineage?: {
725
+ op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
726
+ fromIds: string[];
727
+ } | undefined;
728
+ } | undefined;
729
+ id: `spawn_${string}`;
730
+ position: [number, number, number];
731
+ rotation: number;
732
+ supportSlabId?: string | undefined;
733
+ type: "spawn";
734
+ } | {
735
+ object: "node";
736
+ name?: string | undefined;
737
+ parentId: string | null;
738
+ visible: boolean;
739
+ camera?: {
740
+ position: [number, number, number];
741
+ target: [number, number, number];
742
+ mode: "orthographic" | "perspective";
743
+ fov?: number | undefined;
744
+ zoom?: number | undefined;
745
+ } | undefined;
746
+ metadata: Record<string, unknown>;
747
+ provenance?: {
748
+ refs: {
749
+ ns?: string | undefined;
750
+ id: string;
751
+ role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
752
+ }[];
753
+ lineage?: {
754
+ op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
755
+ fromIds: string[];
756
+ } | undefined;
757
+ } | undefined;
758
+ id: `sseg_${string}`;
664
759
  material?: {
665
760
  id?: string | undefined;
666
761
  preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
@@ -676,56 +771,272 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
676
771
  url: string;
677
772
  repeat?: [number, number] | undefined;
678
773
  scale?: number | undefined;
774
+ offset?: [number, number] | undefined;
775
+ normalMap?: string | undefined;
776
+ normalScale?: number | undefined;
777
+ bumpMap?: string | undefined;
778
+ bumpScale?: number | undefined;
679
779
  } | undefined;
680
780
  } | undefined;
681
781
  materialPreset?: string | undefined;
682
782
  slots?: Record<string, string> | undefined;
683
- polygon: [number, number][];
684
- holes: [number, number][][];
685
- holeMetadata: {
686
- source: "elevator" | "floor-opening" | "manual" | "room" | "stair";
687
- openingId?: string | undefined;
688
- stairId?: string | undefined;
689
- elevatorId?: string | undefined;
690
- }[];
691
- elevation: number;
692
- floorHeight?: number | undefined;
693
- referenceFloorElevation?: number | undefined;
694
- foundation?: {
695
- type: "none" | "solid";
696
- material?: string | {
697
- id?: string | undefined;
698
- preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
699
- properties?: {
783
+ position: [number, number, number];
784
+ rotation: number;
785
+ segmentType: "landing" | "stair";
786
+ width: number;
787
+ length: number;
788
+ height: number;
789
+ stepCount: number;
790
+ attachmentSide: "front" | "left" | "right";
791
+ fillToFloor: boolean;
792
+ construction?: {
793
+ mode: "center-stringer" | "open" | "side-stringers" | "solid" | "waist";
794
+ waistThickness: number;
795
+ treadThickness: number;
796
+ riserThickness: number;
797
+ nosing: number;
798
+ finishThickness: number;
799
+ closedRisers: boolean;
800
+ stringerWidth: number;
801
+ stringerDepth: number;
802
+ } | undefined;
803
+ winder?: {
804
+ turn: "left" | "right";
805
+ innerGap: number;
806
+ walkingLineOffset: number;
807
+ division: "equal-angle" | "equal-going";
808
+ } | undefined;
809
+ thickness: number;
810
+ type: "stair-segment";
811
+ } | {
812
+ object: "node";
813
+ name?: string | undefined;
814
+ parentId: string | null;
815
+ visible: boolean;
816
+ camera?: {
817
+ position: [number, number, number];
818
+ target: [number, number, number];
819
+ mode: "orthographic" | "perspective";
820
+ fov?: number | undefined;
821
+ zoom?: number | undefined;
822
+ } | undefined;
823
+ metadata: Record<string, unknown>;
824
+ provenance?: {
825
+ refs: {
826
+ ns?: string | undefined;
827
+ id: string;
828
+ role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
829
+ }[];
830
+ lineage?: {
831
+ op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
832
+ fromIds: string[];
833
+ } | undefined;
834
+ } | undefined;
835
+ id: `window_${string}`;
836
+ material?: {
837
+ id?: string | undefined;
838
+ preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
839
+ properties?: {
840
+ color: string;
841
+ roughness: number;
842
+ metalness: number;
843
+ opacity: number;
844
+ transparent: boolean;
845
+ side: "back" | "double" | "front";
846
+ } | undefined;
847
+ texture?: {
848
+ url: string;
849
+ repeat?: [number, number] | undefined;
850
+ scale?: number | undefined;
851
+ offset?: [number, number] | undefined;
852
+ normalMap?: string | undefined;
853
+ normalScale?: number | undefined;
854
+ bumpMap?: string | undefined;
855
+ bumpScale?: number | undefined;
856
+ } | undefined;
857
+ } | undefined;
858
+ slots?: Record<string, string> | undefined;
859
+ source?: {
860
+ kind: "script";
861
+ meta?: {
862
+ description?: string | undefined;
863
+ category?: string | undefined;
864
+ tags?: string[] | undefined;
865
+ parent?: string | undefined;
866
+ } | undefined;
867
+ language: "bpy" | "three";
868
+ script: string;
869
+ params: Record<string, string | number | boolean>;
870
+ artifact: string;
871
+ manifest: {
872
+ bounds: {
873
+ min: [number, number, number];
874
+ max: [number, number, number];
875
+ };
876
+ params: {
877
+ id: string;
878
+ label?: string | undefined;
879
+ kind: "boolean" | "number" | "string";
880
+ default: string | number | boolean;
881
+ min?: number | undefined;
882
+ max?: number | undefined;
883
+ step?: number | undefined;
884
+ unit?: string | undefined;
885
+ options?: string[] | undefined;
886
+ }[];
887
+ parts: {
888
+ id: string;
889
+ label?: string | undefined;
890
+ type?: string | undefined;
891
+ bounds?: {
892
+ min: [number, number, number];
893
+ max: [number, number, number];
894
+ } | undefined;
895
+ }[];
896
+ surfaces: {
897
+ part?: string | undefined;
898
+ y: number;
899
+ polygon: [number, number][];
900
+ }[];
901
+ slots: {
902
+ id: string;
903
+ label?: string | undefined;
904
+ color?: string | undefined;
905
+ roughness?: number | undefined;
906
+ metalness?: number | undefined;
907
+ transparent?: boolean | undefined;
908
+ emissive?: boolean | undefined;
909
+ }[];
910
+ anchors: {
911
+ id: string;
912
+ position: [number, number, number];
913
+ normal?: [number, number, number] | undefined;
914
+ }[];
915
+ lights: {
916
+ id: string;
917
+ position: [number, number, number];
700
918
  color: string;
701
- roughness: number;
702
- metalness: number;
703
- opacity: number;
704
- transparent: boolean;
705
- side: "back" | "double" | "front";
706
- } | undefined;
707
- texture?: {
708
- url: string;
709
- repeat?: [number, number] | undefined;
710
- scale?: number | undefined;
919
+ intensity: number;
920
+ distance?: number | undefined;
921
+ spot?: {
922
+ direction: [number, number, number];
923
+ angle: number;
924
+ softness: number;
925
+ } | undefined;
926
+ shadows?: boolean | undefined;
927
+ glow?: {
928
+ size: number;
929
+ strength: number;
930
+ } | undefined;
931
+ }[];
932
+ undersides: {
933
+ part?: string | undefined;
934
+ polygon: [number, number][];
935
+ plane: [number, number, number, number];
936
+ }[];
937
+ animations: {
938
+ name: string;
939
+ duration: number;
940
+ }[];
941
+ cutters?: {
942
+ host: "ceiling" | "mounted" | "slab" | "wall";
943
+ polygon: number[][];
944
+ minY: number;
945
+ maxY: number;
946
+ }[] | undefined;
947
+ cutout: boolean;
948
+ collider: boolean;
949
+ shape?: {
950
+ tolerance: number;
951
+ bands: {
952
+ y0: number;
953
+ y1: number;
954
+ polygons: {
955
+ outer: [number, number][];
956
+ holes?: [number, number][][] | undefined;
957
+ }[];
958
+ }[];
711
959
  } | undefined;
960
+ triangles: number;
961
+ coverage?: number | undefined;
962
+ uncovered?: {
963
+ min: [number, number];
964
+ max: [number, number];
965
+ }[] | undefined;
966
+ };
967
+ images?: {
968
+ artifact: string;
969
+ thumbnail: string;
970
+ floorPlan: string;
712
971
  } | undefined;
713
972
  } | undefined;
714
- thickness: number;
715
- recessed: boolean;
716
- recessedRimElevation?: number | undefined;
717
- fillToTerrain?: boolean | undefined;
718
- boundary?: "auto" | undefined;
719
- support?: "open" | undefined;
720
- plateRole?: "base" | "platform" | "sunken" | undefined;
721
- railing?: {
722
- start: [number, number];
723
- end: [number, number];
724
- }[] | undefined;
725
- zoneIds?: string[] | undefined;
726
- associatedZoneIds?: string[] | undefined;
727
- autoFromWalls: boolean;
728
- type: "slab";
973
+ position: [number, number, number];
974
+ rotation: [number, number, number];
975
+ side?: "back" | "front" | undefined;
976
+ verticalAnchor?: "floor" | "wall" | undefined;
977
+ floorThresholdVersion: 0 | 1;
978
+ wallId?: string | undefined;
979
+ dormerId?: string | undefined;
980
+ dormerFace?: "back" | "front" | "left" | "right" | undefined;
981
+ roofSegmentId?: string | undefined;
982
+ roofFace?: "back" | "front" | "left" | "right" | undefined;
983
+ width: number;
984
+ height: number;
985
+ mark?: string | undefined;
986
+ constructionType: "framed" | "masonry";
987
+ dimensionReference: "finish-opening" | "masonry-opening" | "nominal" | "rough-opening";
988
+ roughOpeningWidth?: number | undefined;
989
+ roughOpeningHeight?: number | undefined;
990
+ masonryOpeningWidth?: number | undefined;
991
+ masonryOpeningHeight?: number | undefined;
992
+ finishOpeningWidth?: number | undefined;
993
+ finishOpeningHeight?: number | undefined;
994
+ openingKind: "opening" | "window";
995
+ windowType: "awning" | "bay" | "bow" | "casement" | "double-hung" | "fixed" | "hopper" | "louvered" | "single-hung" | "sliding" | "tilt-turn";
996
+ operationState: number;
997
+ openingDirection?: "inward" | "outward" | undefined;
998
+ tiltTurnMode?: "tilt" | "turn" | undefined;
999
+ awningDirection: "down" | "up";
1000
+ casementStyle: "french" | "single";
1001
+ hingesSide: "left" | "right";
1002
+ openingShape: "arch" | "rectangle" | "rounded";
1003
+ openingRadiusMode: "all" | "individual";
1004
+ openingCornerRadii: [number, number, number, number];
1005
+ cornerRadius: number;
1006
+ archHeight: number;
1007
+ openingRevealRadius: number;
1008
+ frameThickness: number;
1009
+ frameDepth?: number | undefined;
1010
+ windowHandle?: boolean | undefined;
1011
+ sashGrid?: boolean | undefined;
1012
+ columnRatios: number[];
1013
+ rowRatios: number[];
1014
+ columnDividerThickness: number;
1015
+ rowDividerThickness: number;
1016
+ corner?: {
1017
+ end: "end" | "start";
1018
+ partnerId: string;
1019
+ post: "none" | "post";
1020
+ } | undefined;
1021
+ sill: boolean;
1022
+ sillDepth: number;
1023
+ sillThickness: number;
1024
+ sillOverhang?: number | undefined;
1025
+ sillInterior?: boolean | undefined;
1026
+ sillInteriorDepth?: number | undefined;
1027
+ sillInteriorThickness?: number | undefined;
1028
+ sillInteriorOverhang?: number | undefined;
1029
+ shutters?: "board-batten" | "louvered" | "none" | "panel" | undefined;
1030
+ shutterWidth?: number | undefined;
1031
+ shutterOpen?: number | undefined;
1032
+ shutterSides?: "both" | "left" | "right" | undefined;
1033
+ rollerShutter?: "box" | "concealed" | "none" | undefined;
1034
+ rollerShutterBoxHeight?: number | undefined;
1035
+ rollerShutterOpen?: number | undefined;
1036
+ casingFaceA?: boolean | undefined;
1037
+ casingFaceB?: boolean | undefined;
1038
+ casingWidth?: number | undefined;
1039
+ type: "window";
729
1040
  } | {
730
1041
  object: "node";
731
1042
  name?: string | undefined;
@@ -827,6 +1138,16 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
827
1138
  color: string;
828
1139
  intensity: number;
829
1140
  distance?: number | undefined;
1141
+ spot?: {
1142
+ direction: [number, number, number];
1143
+ angle: number;
1144
+ softness: number;
1145
+ } | undefined;
1146
+ shadows?: boolean | undefined;
1147
+ glow?: {
1148
+ size: number;
1149
+ strength: number;
1150
+ } | undefined;
830
1151
  }[];
831
1152
  undersides: {
832
1153
  part?: string | undefined;
@@ -845,6 +1166,17 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
845
1166
  }[] | undefined;
846
1167
  cutout: boolean;
847
1168
  collider: boolean;
1169
+ shape?: {
1170
+ tolerance: number;
1171
+ bands: {
1172
+ y0: number;
1173
+ y1: number;
1174
+ polygons: {
1175
+ outer: [number, number][];
1176
+ holes?: [number, number][][] | undefined;
1177
+ }[];
1178
+ }[];
1179
+ } | undefined;
848
1180
  triangles: number;
849
1181
  coverage?: number | undefined;
850
1182
  uncovered?: {
@@ -915,6 +1247,16 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
915
1247
  intensityRange: [number, number];
916
1248
  distance?: number | undefined;
917
1249
  offset: [number, number, number];
1250
+ spot?: {
1251
+ direction: [number, number, number];
1252
+ angle: number;
1253
+ softness: number;
1254
+ } | undefined;
1255
+ shadows?: boolean | undefined;
1256
+ glow?: {
1257
+ size: number;
1258
+ strength: number;
1259
+ } | undefined;
918
1260
  })[];
919
1261
  } | undefined;
920
1262
  };
@@ -958,6 +1300,11 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
958
1300
  url: string;
959
1301
  repeat?: [number, number] | undefined;
960
1302
  scale?: number | undefined;
1303
+ offset?: [number, number] | undefined;
1304
+ normalMap?: string | undefined;
1305
+ normalScale?: number | undefined;
1306
+ bumpMap?: string | undefined;
1307
+ bumpScale?: number | undefined;
961
1308
  } | undefined;
962
1309
  } | undefined;
963
1310
  slots?: Record<string, string> | undefined;
@@ -1023,6 +1370,16 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
1023
1370
  color: string;
1024
1371
  intensity: number;
1025
1372
  distance?: number | undefined;
1373
+ spot?: {
1374
+ direction: [number, number, number];
1375
+ angle: number;
1376
+ softness: number;
1377
+ } | undefined;
1378
+ shadows?: boolean | undefined;
1379
+ glow?: {
1380
+ size: number;
1381
+ strength: number;
1382
+ } | undefined;
1026
1383
  }[];
1027
1384
  undersides: {
1028
1385
  part?: string | undefined;
@@ -1041,6 +1398,17 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
1041
1398
  }[] | undefined;
1042
1399
  cutout: boolean;
1043
1400
  collider: boolean;
1401
+ shape?: {
1402
+ tolerance: number;
1403
+ bands: {
1404
+ y0: number;
1405
+ y1: number;
1406
+ polygons: {
1407
+ outer: [number, number][];
1408
+ holes?: [number, number][][] | undefined;
1409
+ }[];
1410
+ }[];
1411
+ } | undefined;
1044
1412
  triangles: number;
1045
1413
  coverage?: number | undefined;
1046
1414
  uncovered?: {
@@ -1064,6 +1432,10 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
1064
1432
  roofFace?: "back" | "front" | "left" | "right" | undefined;
1065
1433
  width: number;
1066
1434
  height: number;
1435
+ sidelightLeft?: number | undefined;
1436
+ sidelightRight?: number | undefined;
1437
+ transomHeight?: number | undefined;
1438
+ slidingStyle?: "bypass" | "patio" | undefined;
1067
1439
  mark?: string | undefined;
1068
1440
  constructionType: "framed" | "masonry";
1069
1441
  dimensionReference: "finish-opening" | "masonry-opening" | "nominal" | "rough-opening";
@@ -1075,7 +1447,7 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
1075
1447
  finishOpeningHeight?: number | undefined;
1076
1448
  doorCategory: "garage" | "interior";
1077
1449
  doorType: "barn" | "double" | "folding" | "french" | "garage-rollup" | "garage-sectional" | "garage-tiltup" | "hinged" | "pocket" | "sliding";
1078
- leafCount: 1 | 2 | 3 | 4;
1450
+ leafCount: 1 | 2 | 3 | 4 | 6 | 8;
1079
1451
  operationState: number;
1080
1452
  slideDirection: "left" | "right";
1081
1453
  trackStyle: "none" | "overhead" | "pocket" | "visible";
@@ -1088,9 +1460,12 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
1088
1460
  archHeight: number;
1089
1461
  openingRevealRadius: number;
1090
1462
  frameThickness: number;
1091
- frameDepth: number;
1463
+ frameDepth?: number | undefined;
1092
1464
  threshold: boolean;
1093
1465
  thresholdHeight: number;
1466
+ casingFaceA?: boolean | undefined;
1467
+ casingFaceB?: boolean | undefined;
1468
+ casingWidth?: number | undefined;
1094
1469
  hingesSide: "left" | "right";
1095
1470
  swingDirection: "inward" | "outward";
1096
1471
  swingAngle: number;
@@ -1103,11 +1478,14 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
1103
1478
  panelInset: number;
1104
1479
  }[];
1105
1480
  handle: boolean;
1481
+ handleStyle?: "bar" | "knob" | "lever" | "lever-curved" | "plate" | undefined;
1106
1482
  handleHeight: number;
1107
1483
  handleSide: "left" | "right";
1108
1484
  contentPadding: [number, number];
1109
1485
  doorCloser: boolean;
1110
1486
  panicBar: boolean;
1487
+ panicBarStyle: "crossbar" | "touchbar";
1488
+ panicBarRods: boolean;
1111
1489
  panicBarHeight: number;
1112
1490
  type: "door";
1113
1491
  } | {
@@ -1134,25 +1512,11 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
1134
1512
  fromIds: string[];
1135
1513
  } | undefined;
1136
1514
  } | undefined;
1137
- id: `window_${string}`;
1138
- material?: {
1139
- id?: string | undefined;
1140
- preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
1141
- properties?: {
1142
- color: string;
1143
- roughness: number;
1144
- metalness: number;
1145
- opacity: number;
1146
- transparent: boolean;
1147
- side: "back" | "double" | "front";
1148
- } | undefined;
1149
- texture?: {
1150
- url: string;
1151
- repeat?: [number, number] | undefined;
1152
- scale?: number | undefined;
1153
- } | undefined;
1154
- } | undefined;
1155
- slots?: Record<string, string> | undefined;
1515
+ id: `column_${string}`;
1516
+ children: string[];
1517
+ position: [number, number, number];
1518
+ rotation: number;
1519
+ supportSlabId?: string | undefined;
1156
1520
  source?: {
1157
1521
  kind: "script";
1158
1522
  meta?: {
@@ -1215,6 +1579,16 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
1215
1579
  color: string;
1216
1580
  intensity: number;
1217
1581
  distance?: number | undefined;
1582
+ spot?: {
1583
+ direction: [number, number, number];
1584
+ angle: number;
1585
+ softness: number;
1586
+ } | undefined;
1587
+ shadows?: boolean | undefined;
1588
+ glow?: {
1589
+ size: number;
1590
+ strength: number;
1591
+ } | undefined;
1218
1592
  }[];
1219
1593
  undersides: {
1220
1594
  part?: string | undefined;
@@ -1233,6 +1607,17 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
1233
1607
  }[] | undefined;
1234
1608
  cutout: boolean;
1235
1609
  collider: boolean;
1610
+ shape?: {
1611
+ tolerance: number;
1612
+ bands: {
1613
+ y0: number;
1614
+ y1: number;
1615
+ polygons: {
1616
+ outer: [number, number][];
1617
+ holes?: [number, number][][] | undefined;
1618
+ }[];
1619
+ }[];
1620
+ } | undefined;
1236
1621
  triangles: number;
1237
1622
  coverage?: number | undefined;
1238
1623
  uncovered?: {
@@ -1246,54 +1631,104 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
1246
1631
  floorPlan: string;
1247
1632
  } | undefined;
1248
1633
  } | undefined;
1249
- position: [number, number, number];
1250
- rotation: [number, number, number];
1251
- side?: "back" | "front" | undefined;
1252
- verticalAnchor?: "floor" | "wall" | undefined;
1253
- floorThresholdVersion: 0 | 1;
1254
- wallId?: string | undefined;
1255
- dormerId?: string | undefined;
1256
- dormerFace?: "back" | "front" | "left" | "right" | undefined;
1257
- roofSegmentId?: string | undefined;
1258
- roofFace?: "back" | "front" | "left" | "right" | undefined;
1259
- width: number;
1260
- height: number;
1261
- mark?: string | undefined;
1262
- constructionType: "framed" | "masonry";
1263
- dimensionReference: "finish-opening" | "masonry-opening" | "nominal" | "rough-opening";
1264
- roughOpeningWidth?: number | undefined;
1265
- roughOpeningHeight?: number | undefined;
1266
- masonryOpeningWidth?: number | undefined;
1267
- masonryOpeningHeight?: number | undefined;
1268
- finishOpeningWidth?: number | undefined;
1269
- finishOpeningHeight?: number | undefined;
1270
- openingKind: "opening" | "window";
1271
- windowType: "awning" | "bay" | "bow" | "casement" | "double-hung" | "fixed" | "hopper" | "louvered" | "single-hung" | "sliding";
1272
- operationState: number;
1273
- awningDirection: "down" | "up";
1274
- casementStyle: "french" | "single";
1275
- hingesSide: "left" | "right";
1276
- openingShape: "arch" | "rectangle" | "rounded";
1277
- openingRadiusMode: "all" | "individual";
1278
- openingCornerRadii: [number, number, number, number];
1279
- cornerRadius: number;
1280
- archHeight: number;
1281
- openingRevealRadius: number;
1282
- frameThickness: number;
1283
- frameDepth: number;
1284
- columnRatios: number[];
1285
- rowRatios: number[];
1286
- columnDividerThickness: number;
1287
- rowDividerThickness: number;
1288
- corner?: {
1289
- end: "end" | "start";
1290
- partnerId: string;
1291
- post: "none" | "post";
1292
- } | undefined;
1293
- sill: boolean;
1294
- sillDepth: number;
1295
- sillThickness: number;
1296
- type: "window";
1634
+ style: "cluster" | "dravidian-carved" | "faceted" | "fluted" | "lathe-turned" | "plain";
1635
+ crossSection: "octagonal" | "rectangular" | "round" | "sixteen-sided" | "square";
1636
+ height: number;
1637
+ radius: number;
1638
+ width: number;
1639
+ depth: number;
1640
+ edgeSoftness: number;
1641
+ baseHeight: number;
1642
+ capitalHeight: number;
1643
+ shaftProfile: "baluster" | "bulged" | "hourglass" | "straight" | "tapered";
1644
+ shaftTaper: number;
1645
+ shaftBulge: number;
1646
+ shaftStartScale: number;
1647
+ shaftEndScale: number;
1648
+ shaftSegmentCount: number;
1649
+ shaftTwistStep: number;
1650
+ shaftCornerRadius: number;
1651
+ shaftDetail: "fluted" | "lathe-turned" | "none" | "panelled" | "spiral";
1652
+ baseStyle: "lotus" | "none" | "panelled-pedestal" | "ribbed-lotus" | "round-rings" | "simple-square" | "square-plinth" | "stepped-square";
1653
+ baseWidthScale: number;
1654
+ baseDepthScale: number;
1655
+ baseTierCount: number;
1656
+ baseStepSpread: number;
1657
+ basePlinthHeightRatio: number;
1658
+ baseRoundBandScale: number;
1659
+ baseNeckScale: number;
1660
+ baseRoundBandCount: number;
1661
+ baseRibCount: number;
1662
+ baseCarvingLevel: number;
1663
+ basePanelInset: number;
1664
+ capitalStyle: "corinthian-leaf" | "doric" | "ionic-volute" | "leaf-carved" | "none" | "rounded" | "simple" | "simple-slab" | "south-indian-bracket" | "stepped" | "volute" | "wood-bracket";
1665
+ capitalWidthScale: number;
1666
+ capitalDepthScale: number;
1667
+ capitalTierCount: number;
1668
+ capitalStepSpread: number;
1669
+ capitalBandCount: number;
1670
+ voluteSize: number;
1671
+ voluteCount: number;
1672
+ leafCount: number;
1673
+ leafRows: number;
1674
+ bracketDepth: number;
1675
+ bracketTierCount: number;
1676
+ pendantCount: number;
1677
+ capitalCarvingLevel: number;
1678
+ ringCount: number;
1679
+ ringPlacement: "bottom" | "ends" | "even" | "top";
1680
+ ringThickness: number;
1681
+ ringSpread: number;
1682
+ fluteCount: number;
1683
+ fluteDepth: number;
1684
+ fluteWidth: number;
1685
+ spiralTwist: number;
1686
+ spiralRibCount: number;
1687
+ panelCount: number;
1688
+ panelInsetDepth: number;
1689
+ panelShape: "arched" | "diamond" | "rectangle";
1690
+ latheRingCount: number;
1691
+ latheRingSpacing: "bottom" | "ends" | "even" | "top";
1692
+ carvingLevel: number;
1693
+ carvingPlacement: "all" | "base" | "capital" | "shaft";
1694
+ lowerBandEnabled: boolean;
1695
+ lowerBandHeight: number;
1696
+ lowerBandCarvingLevel: number;
1697
+ dentilCount: number;
1698
+ beadCount: number;
1699
+ supportStyle: "a-frame" | "box-frame" | "k-brace" | "portal-frame" | "single-strut" | "trestle" | "tripod" | "v-frame" | "vertical" | "x-brace" | "y-frame";
1700
+ braceWidth: number;
1701
+ braceDepth: number;
1702
+ braceBottomSpread: number;
1703
+ braceTopSpread: number;
1704
+ bracePlateEnabled: boolean;
1705
+ role?: "ornament" | "post" | undefined;
1706
+ postBase?: "none" | "pier" | "post-base" | undefined;
1707
+ material?: {
1708
+ id?: string | undefined;
1709
+ preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
1710
+ properties?: {
1711
+ color: string;
1712
+ roughness: number;
1713
+ metalness: number;
1714
+ opacity: number;
1715
+ transparent: boolean;
1716
+ side: "back" | "double" | "front";
1717
+ } | undefined;
1718
+ texture?: {
1719
+ url: string;
1720
+ repeat?: [number, number] | undefined;
1721
+ scale?: number | undefined;
1722
+ offset?: [number, number] | undefined;
1723
+ normalMap?: string | undefined;
1724
+ normalScale?: number | undefined;
1725
+ bumpMap?: string | undefined;
1726
+ bumpScale?: number | undefined;
1727
+ } | undefined;
1728
+ } | undefined;
1729
+ materialPreset?: string | undefined;
1730
+ slots?: Record<string, string> | undefined;
1731
+ type: "column";
1297
1732
  } | {
1298
1733
  object: "node";
1299
1734
  name?: string | undefined;
@@ -1334,6 +1769,11 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
1334
1769
  url: string;
1335
1770
  repeat?: [number, number] | undefined;
1336
1771
  scale?: number | undefined;
1772
+ offset?: [number, number] | undefined;
1773
+ normalMap?: string | undefined;
1774
+ normalScale?: number | undefined;
1775
+ bumpMap?: string | undefined;
1776
+ bumpScale?: number | undefined;
1337
1777
  } | undefined;
1338
1778
  } | undefined;
1339
1779
  materialPreset?: string | undefined;
@@ -1352,6 +1792,11 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
1352
1792
  url: string;
1353
1793
  repeat?: [number, number] | undefined;
1354
1794
  scale?: number | undefined;
1795
+ offset?: [number, number] | undefined;
1796
+ normalMap?: string | undefined;
1797
+ normalScale?: number | undefined;
1798
+ bumpMap?: string | undefined;
1799
+ bumpScale?: number | undefined;
1355
1800
  } | undefined;
1356
1801
  } | undefined;
1357
1802
  topMaterialPreset?: string | undefined;
@@ -1370,6 +1815,11 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
1370
1815
  url: string;
1371
1816
  repeat?: [number, number] | undefined;
1372
1817
  scale?: number | undefined;
1818
+ offset?: [number, number] | undefined;
1819
+ normalMap?: string | undefined;
1820
+ normalScale?: number | undefined;
1821
+ bumpMap?: string | undefined;
1822
+ bumpScale?: number | undefined;
1373
1823
  } | undefined;
1374
1824
  } | undefined;
1375
1825
  edgeMaterialPreset?: string | undefined;
@@ -1388,57 +1838,302 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
1388
1838
  url: string;
1389
1839
  repeat?: [number, number] | undefined;
1390
1840
  scale?: number | undefined;
1841
+ offset?: [number, number] | undefined;
1842
+ normalMap?: string | undefined;
1843
+ normalScale?: number | undefined;
1844
+ bumpMap?: string | undefined;
1845
+ bumpScale?: number | undefined;
1846
+ } | undefined;
1847
+ } | undefined;
1848
+ wallMaterialPreset?: string | undefined;
1849
+ heelMaterial?: {
1850
+ id?: string | undefined;
1851
+ preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
1852
+ properties?: {
1853
+ color: string;
1854
+ roughness: number;
1855
+ metalness: number;
1856
+ opacity: number;
1857
+ transparent: boolean;
1858
+ side: "back" | "double" | "front";
1859
+ } | undefined;
1860
+ texture?: {
1861
+ url: string;
1862
+ repeat?: [number, number] | undefined;
1863
+ scale?: number | undefined;
1864
+ offset?: [number, number] | undefined;
1865
+ normalMap?: string | undefined;
1866
+ normalScale?: number | undefined;
1867
+ bumpMap?: string | undefined;
1868
+ bumpScale?: number | undefined;
1869
+ } | undefined;
1870
+ } | undefined;
1871
+ heelMaterialPreset?: string | undefined;
1872
+ position: [number, number, number];
1873
+ rotation: number;
1874
+ support: {
1875
+ kind: "level";
1876
+ } | {
1877
+ kind: "walls";
1878
+ } | {
1879
+ kind: "roof";
1880
+ roofSegmentId: `rseg_${string}`;
1881
+ localPosition: [number, number];
1882
+ curbHeight: number;
1883
+ };
1884
+ assembly?: {
1885
+ layers: {
1886
+ id: string;
1887
+ role: "air" | "covering" | "deck" | "fill" | "finish" | "furring" | "glazing" | "insulation" | "lining" | "membrane" | "sheathing" | "shell" | "structure" | "substrate" | "underlay";
1888
+ thickness: number;
1889
+ core?: true | undefined;
1890
+ spacing?: number | undefined;
1891
+ material?: string | undefined;
1892
+ slot?: string | undefined;
1893
+ returns?: boolean | undefined;
1894
+ display?: "construction" | "finished" | undefined;
1895
+ inset?: number | undefined;
1896
+ bottom?: number | undefined;
1897
+ lift?: number | undefined;
1898
+ src?: string | undefined;
1899
+ }[];
1900
+ backing?: {
1901
+ id: string;
1902
+ role: "air" | "covering" | "deck" | "fill" | "finish" | "furring" | "glazing" | "insulation" | "lining" | "membrane" | "sheathing" | "shell" | "structure" | "substrate" | "underlay";
1903
+ thickness: number;
1904
+ core?: true | undefined;
1905
+ spacing?: number | undefined;
1906
+ material?: string | undefined;
1907
+ slot?: string | undefined;
1908
+ returns?: boolean | undefined;
1909
+ display?: "construction" | "finished" | undefined;
1910
+ inset?: number | undefined;
1911
+ bottom?: number | undefined;
1912
+ lift?: number | undefined;
1913
+ src?: string | undefined;
1914
+ }[] | undefined;
1915
+ face?: "exterior" | "front" | undefined;
1916
+ presetId?: string | undefined;
1917
+ cavityInsulation?: string | undefined;
1918
+ } | undefined;
1919
+ slots?: Record<string, string> | undefined;
1920
+ children: `rseg_${string}`[];
1921
+ type: "roof";
1922
+ } | {
1923
+ object: "node";
1924
+ name?: string | undefined;
1925
+ parentId: string | null;
1926
+ visible: boolean;
1927
+ camera?: {
1928
+ position: [number, number, number];
1929
+ target: [number, number, number];
1930
+ mode: "orthographic" | "perspective";
1931
+ fov?: number | undefined;
1932
+ zoom?: number | undefined;
1933
+ } | undefined;
1934
+ metadata: Record<string, unknown>;
1935
+ provenance?: {
1936
+ refs: {
1937
+ ns?: string | undefined;
1938
+ id: string;
1939
+ role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
1940
+ }[];
1941
+ lineage?: {
1942
+ op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
1943
+ fromIds: string[];
1944
+ } | undefined;
1945
+ } | undefined;
1946
+ id: `slab_${string}`;
1947
+ material?: {
1948
+ id?: string | undefined;
1949
+ preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
1950
+ properties?: {
1951
+ color: string;
1952
+ roughness: number;
1953
+ metalness: number;
1954
+ opacity: number;
1955
+ transparent: boolean;
1956
+ side: "back" | "double" | "front";
1957
+ } | undefined;
1958
+ texture?: {
1959
+ url: string;
1960
+ repeat?: [number, number] | undefined;
1961
+ scale?: number | undefined;
1962
+ offset?: [number, number] | undefined;
1963
+ normalMap?: string | undefined;
1964
+ normalScale?: number | undefined;
1965
+ bumpMap?: string | undefined;
1966
+ bumpScale?: number | undefined;
1967
+ } | undefined;
1968
+ } | undefined;
1969
+ materialPreset?: string | undefined;
1970
+ slots?: Record<string, string> | undefined;
1971
+ polygon: [number, number][];
1972
+ holes: [number, number][][];
1973
+ holeMetadata: {
1974
+ source: "elevator" | "floor-opening" | "manual" | "room" | "stair";
1975
+ openingId?: string | undefined;
1976
+ stairId?: string | undefined;
1977
+ elevatorId?: string | undefined;
1978
+ }[];
1979
+ elevation: number;
1980
+ floorHeight?: number | undefined;
1981
+ referenceFloorElevation?: number | undefined;
1982
+ foundation?: {
1983
+ type: "none" | "solid";
1984
+ material?: string | {
1985
+ id?: string | undefined;
1986
+ preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
1987
+ properties?: {
1988
+ color: string;
1989
+ roughness: number;
1990
+ metalness: number;
1991
+ opacity: number;
1992
+ transparent: boolean;
1993
+ side: "back" | "double" | "front";
1994
+ } | undefined;
1995
+ texture?: {
1996
+ url: string;
1997
+ repeat?: [number, number] | undefined;
1998
+ scale?: number | undefined;
1999
+ offset?: [number, number] | undefined;
2000
+ normalMap?: string | undefined;
2001
+ normalScale?: number | undefined;
2002
+ bumpMap?: string | undefined;
2003
+ bumpScale?: number | undefined;
2004
+ } | undefined;
2005
+ } | undefined;
2006
+ } | undefined;
2007
+ thickness: number;
2008
+ recessed: boolean;
2009
+ recessedRimElevation?: number | undefined;
2010
+ fillToTerrain?: boolean | undefined;
2011
+ boundary?: "auto" | undefined;
2012
+ support?: "open" | undefined;
2013
+ plateRole?: "base" | "platform" | "sunken" | undefined;
2014
+ railing?: {
2015
+ start: [number, number];
2016
+ end: [number, number];
2017
+ }[] | undefined;
2018
+ zoneIds?: string[] | undefined;
2019
+ associatedZoneIds?: string[] | undefined;
2020
+ autoFromWalls: boolean;
2021
+ surfaceScript?: {
2022
+ kind: "script";
2023
+ meta?: {
2024
+ description?: string | undefined;
2025
+ category?: string | undefined;
2026
+ tags?: string[] | undefined;
2027
+ parent?: string | undefined;
2028
+ } | undefined;
2029
+ language: "bpy" | "three";
2030
+ script: string;
2031
+ params: Record<string, string | number | boolean>;
2032
+ artifact: string;
2033
+ manifest: {
2034
+ bounds: {
2035
+ min: [number, number, number];
2036
+ max: [number, number, number];
2037
+ };
2038
+ params: {
2039
+ id: string;
2040
+ label?: string | undefined;
2041
+ kind: "boolean" | "number" | "string";
2042
+ default: string | number | boolean;
2043
+ min?: number | undefined;
2044
+ max?: number | undefined;
2045
+ step?: number | undefined;
2046
+ unit?: string | undefined;
2047
+ options?: string[] | undefined;
2048
+ }[];
2049
+ parts: {
2050
+ id: string;
2051
+ label?: string | undefined;
2052
+ type?: string | undefined;
2053
+ bounds?: {
2054
+ min: [number, number, number];
2055
+ max: [number, number, number];
2056
+ } | undefined;
2057
+ }[];
2058
+ surfaces: {
2059
+ part?: string | undefined;
2060
+ y: number;
2061
+ polygon: [number, number][];
2062
+ }[];
2063
+ slots: {
2064
+ id: string;
2065
+ label?: string | undefined;
2066
+ color?: string | undefined;
2067
+ roughness?: number | undefined;
2068
+ metalness?: number | undefined;
2069
+ transparent?: boolean | undefined;
2070
+ emissive?: boolean | undefined;
2071
+ }[];
2072
+ anchors: {
2073
+ id: string;
2074
+ position: [number, number, number];
2075
+ normal?: [number, number, number] | undefined;
2076
+ }[];
2077
+ lights: {
2078
+ id: string;
2079
+ position: [number, number, number];
2080
+ color: string;
2081
+ intensity: number;
2082
+ distance?: number | undefined;
2083
+ spot?: {
2084
+ direction: [number, number, number];
2085
+ angle: number;
2086
+ softness: number;
2087
+ } | undefined;
2088
+ shadows?: boolean | undefined;
2089
+ glow?: {
2090
+ size: number;
2091
+ strength: number;
2092
+ } | undefined;
2093
+ }[];
2094
+ undersides: {
2095
+ part?: string | undefined;
2096
+ polygon: [number, number][];
2097
+ plane: [number, number, number, number];
2098
+ }[];
2099
+ animations: {
2100
+ name: string;
2101
+ duration: number;
2102
+ }[];
2103
+ cutters?: {
2104
+ host: "ceiling" | "mounted" | "slab" | "wall";
2105
+ polygon: number[][];
2106
+ minY: number;
2107
+ maxY: number;
2108
+ }[] | undefined;
2109
+ cutout: boolean;
2110
+ collider: boolean;
2111
+ shape?: {
2112
+ tolerance: number;
2113
+ bands: {
2114
+ y0: number;
2115
+ y1: number;
2116
+ polygons: {
2117
+ outer: [number, number][];
2118
+ holes?: [number, number][][] | undefined;
2119
+ }[];
2120
+ }[];
2121
+ } | undefined;
2122
+ triangles: number;
2123
+ coverage?: number | undefined;
2124
+ uncovered?: {
2125
+ min: [number, number];
2126
+ max: [number, number];
2127
+ }[] | undefined;
2128
+ };
2129
+ images?: {
2130
+ artifact: string;
2131
+ thumbnail: string;
2132
+ floorPlan: string;
1391
2133
  } | undefined;
2134
+ inputs: string;
1392
2135
  } | undefined;
1393
- wallMaterialPreset?: string | undefined;
1394
- position: [number, number, number];
1395
- rotation: number;
1396
- support: {
1397
- kind: "level";
1398
- } | {
1399
- kind: "walls";
1400
- } | {
1401
- kind: "roof";
1402
- roofSegmentId: `rseg_${string}`;
1403
- localPosition: [number, number];
1404
- curbHeight: number;
1405
- };
1406
- assembly?: {
1407
- layers: {
1408
- id: string;
1409
- role: "air" | "covering" | "deck" | "fill" | "finish" | "furring" | "glazing" | "insulation" | "lining" | "membrane" | "sheathing" | "shell" | "structure" | "substrate" | "underlay";
1410
- thickness: number;
1411
- core?: true | undefined;
1412
- material?: string | undefined;
1413
- slot?: string | undefined;
1414
- returns?: boolean | undefined;
1415
- display?: "construction" | "finished" | undefined;
1416
- inset?: number | undefined;
1417
- bottom?: number | undefined;
1418
- lift?: number | undefined;
1419
- src?: string | undefined;
1420
- }[];
1421
- backing?: {
1422
- id: string;
1423
- role: "air" | "covering" | "deck" | "fill" | "finish" | "furring" | "glazing" | "insulation" | "lining" | "membrane" | "sheathing" | "shell" | "structure" | "substrate" | "underlay";
1424
- thickness: number;
1425
- core?: true | undefined;
1426
- material?: string | undefined;
1427
- slot?: string | undefined;
1428
- returns?: boolean | undefined;
1429
- display?: "construction" | "finished" | undefined;
1430
- inset?: number | undefined;
1431
- bottom?: number | undefined;
1432
- lift?: number | undefined;
1433
- src?: string | undefined;
1434
- }[] | undefined;
1435
- face?: "exterior" | "front" | undefined;
1436
- presetId?: string | undefined;
1437
- cavityInsulation?: string | undefined;
1438
- } | undefined;
1439
- slots?: Record<string, string> | undefined;
1440
- children: `rseg_${string}`[];
1441
- type: "roof";
2136
+ type: "slab";
1442
2137
  } | {
1443
2138
  object: "node";
1444
2139
  name?: string | undefined;
@@ -1564,7 +2259,7 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
1564
2259
  } | undefined;
1565
2260
  } | undefined;
1566
2261
  id: `wall_${string}`;
1567
- wallType?: "curtain" | "standard" | undefined;
2262
+ wallType?: "curtain" | "railing" | "standard" | undefined;
1568
2263
  curtainWall?: {
1569
2264
  construction: "stick" | "unitized";
1570
2265
  framing: "capped" | "horizontal-caps" | "structural-glazing" | "vertical-caps";
@@ -1598,6 +2293,15 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
1598
2293
  type: "empty" | "glass" | "solid";
1599
2294
  }[];
1600
2295
  } | undefined;
2296
+ railing?: {
2297
+ style: "balusters" | "boards" | "cable" | "glass" | "metal" | "post-and-rail";
2298
+ postSpacing: number;
2299
+ postSize: number;
2300
+ infillSize: number;
2301
+ infillGap: number;
2302
+ bottomClearance: number;
2303
+ cap: boolean;
2304
+ } | undefined;
1601
2305
  children: (`door_${string}` | `item_${string}` | `leanto_${string}` | `procedural-item_${string}` | `window_${string}`)[];
1602
2306
  material?: {
1603
2307
  id?: string | undefined;
@@ -1614,6 +2318,11 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
1614
2318
  url: string;
1615
2319
  repeat?: [number, number] | undefined;
1616
2320
  scale?: number | undefined;
2321
+ offset?: [number, number] | undefined;
2322
+ normalMap?: string | undefined;
2323
+ normalScale?: number | undefined;
2324
+ bumpMap?: string | undefined;
2325
+ bumpScale?: number | undefined;
1617
2326
  } | undefined;
1618
2327
  } | undefined;
1619
2328
  materialPreset?: string | undefined;
@@ -1632,6 +2341,11 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
1632
2341
  url: string;
1633
2342
  repeat?: [number, number] | undefined;
1634
2343
  scale?: number | undefined;
2344
+ offset?: [number, number] | undefined;
2345
+ normalMap?: string | undefined;
2346
+ normalScale?: number | undefined;
2347
+ bumpMap?: string | undefined;
2348
+ bumpScale?: number | undefined;
1635
2349
  } | undefined;
1636
2350
  } | undefined;
1637
2351
  interiorMaterialPreset?: string | undefined;
@@ -1650,6 +2364,11 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
1650
2364
  url: string;
1651
2365
  repeat?: [number, number] | undefined;
1652
2366
  scale?: number | undefined;
2367
+ offset?: [number, number] | undefined;
2368
+ normalMap?: string | undefined;
2369
+ normalScale?: number | undefined;
2370
+ bumpMap?: string | undefined;
2371
+ bumpScale?: number | undefined;
1653
2372
  } | undefined;
1654
2373
  } | undefined;
1655
2374
  exteriorMaterialPreset?: string | undefined;
@@ -1671,6 +2390,11 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
1671
2390
  url: string;
1672
2391
  repeat?: [number, number] | undefined;
1673
2392
  scale?: number | undefined;
2393
+ offset?: [number, number] | undefined;
2394
+ normalMap?: string | undefined;
2395
+ normalScale?: number | undefined;
2396
+ bumpMap?: string | undefined;
2397
+ bumpScale?: number | undefined;
1674
2398
  } | undefined;
1675
2399
  } | undefined;
1676
2400
  materialPreset?: string | undefined;
@@ -1691,6 +2415,11 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
1691
2415
  url: string;
1692
2416
  repeat?: [number, number] | undefined;
1693
2417
  scale?: number | undefined;
2418
+ offset?: [number, number] | undefined;
2419
+ normalMap?: string | undefined;
2420
+ normalScale?: number | undefined;
2421
+ bumpMap?: string | undefined;
2422
+ bumpScale?: number | undefined;
1694
2423
  } | undefined;
1695
2424
  } | undefined;
1696
2425
  materialPreset?: string | undefined;
@@ -1712,6 +2441,7 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
1712
2441
  role: "air" | "covering" | "deck" | "fill" | "finish" | "furring" | "glazing" | "insulation" | "lining" | "membrane" | "sheathing" | "shell" | "structure" | "substrate" | "underlay";
1713
2442
  thickness: number;
1714
2443
  core?: true | undefined;
2444
+ spacing?: number | undefined;
1715
2445
  material?: string | undefined;
1716
2446
  slot?: string | undefined;
1717
2447
  returns?: boolean | undefined;
@@ -1726,6 +2456,7 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
1726
2456
  role: "air" | "covering" | "deck" | "fill" | "finish" | "furring" | "glazing" | "insulation" | "lining" | "membrane" | "sheathing" | "shell" | "structure" | "substrate" | "underlay";
1727
2457
  thickness: number;
1728
2458
  core?: true | undefined;
2459
+ spacing?: number | undefined;
1729
2460
  material?: string | undefined;
1730
2461
  slot?: string | undefined;
1731
2462
  returns?: boolean | undefined;
@@ -1843,6 +2574,16 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
1843
2574
  color: string;
1844
2575
  intensity: number;
1845
2576
  distance?: number | undefined;
2577
+ spot?: {
2578
+ direction: [number, number, number];
2579
+ angle: number;
2580
+ softness: number;
2581
+ } | undefined;
2582
+ shadows?: boolean | undefined;
2583
+ glow?: {
2584
+ size: number;
2585
+ strength: number;
2586
+ } | undefined;
1846
2587
  }[];
1847
2588
  undersides: {
1848
2589
  part?: string | undefined;
@@ -1861,6 +2602,17 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
1861
2602
  }[] | undefined;
1862
2603
  cutout: boolean;
1863
2604
  collider: boolean;
2605
+ shape?: {
2606
+ tolerance: number;
2607
+ bands: {
2608
+ y0: number;
2609
+ y1: number;
2610
+ polygons: {
2611
+ outer: [number, number][];
2612
+ holes?: [number, number][][] | undefined;
2613
+ }[];
2614
+ }[];
2615
+ } | undefined;
1864
2616
  triangles: number;
1865
2617
  coverage?: number | undefined;
1866
2618
  uncovered?: {
@@ -1938,6 +2690,16 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
1938
2690
  color: string;
1939
2691
  intensity: number;
1940
2692
  distance?: number | undefined;
2693
+ spot?: {
2694
+ direction: [number, number, number];
2695
+ angle: number;
2696
+ softness: number;
2697
+ } | undefined;
2698
+ shadows?: boolean | undefined;
2699
+ glow?: {
2700
+ size: number;
2701
+ strength: number;
2702
+ } | undefined;
1941
2703
  }[];
1942
2704
  undersides: {
1943
2705
  part?: string | undefined;
@@ -1956,6 +2718,17 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
1956
2718
  }[] | undefined;
1957
2719
  cutout: boolean;
1958
2720
  collider: boolean;
2721
+ shape?: {
2722
+ tolerance: number;
2723
+ bands: {
2724
+ y0: number;
2725
+ y1: number;
2726
+ polygons: {
2727
+ outer: [number, number][];
2728
+ holes?: [number, number][][] | undefined;
2729
+ }[];
2730
+ }[];
2731
+ } | undefined;
1959
2732
  triangles: number;
1960
2733
  coverage?: number | undefined;
1961
2734
  uncovered?: {
@@ -1977,70 +2750,6 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
1977
2750
  frontSide: "exterior" | "interior" | "unknown";
1978
2751
  backSide: "exterior" | "interior" | "unknown";
1979
2752
  type: "wall";
1980
- } | {
1981
- object: "node";
1982
- name?: string | undefined;
1983
- parentId: string | null;
1984
- visible: boolean;
1985
- camera?: {
1986
- position: [number, number, number];
1987
- target: [number, number, number];
1988
- mode: "orthographic" | "perspective";
1989
- fov?: number | undefined;
1990
- zoom?: number | undefined;
1991
- } | undefined;
1992
- metadata: Record<string, unknown>;
1993
- provenance?: {
1994
- refs: {
1995
- ns?: string | undefined;
1996
- id: string;
1997
- role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
1998
- }[];
1999
- lineage?: {
2000
- op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
2001
- fromIds: string[];
2002
- } | undefined;
2003
- } | undefined;
2004
- id: `separator_${string}`;
2005
- start: [number, number];
2006
- end: [number, number];
2007
- type: "separator";
2008
- } | {
2009
- object: "node";
2010
- name?: string | undefined;
2011
- parentId: string | null;
2012
- visible: boolean;
2013
- camera?: {
2014
- position: [number, number, number];
2015
- target: [number, number, number];
2016
- mode: "orthographic" | "perspective";
2017
- fov?: number | undefined;
2018
- zoom?: number | undefined;
2019
- } | undefined;
2020
- metadata: Record<string, unknown>;
2021
- provenance?: {
2022
- refs: {
2023
- ns?: string | undefined;
2024
- id: string;
2025
- role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
2026
- }[];
2027
- lineage?: {
2028
- op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
2029
- fromIds: string[];
2030
- } | undefined;
2031
- } | undefined;
2032
- id: `floor-opening_${string}`;
2033
- polygon: [number, number][];
2034
- hostZoneId?: string | undefined;
2035
- legacyPlateCuts?: Record<string, [number, number][][]> | undefined;
2036
- legacyCeilingCuts?: Record<string, [number, number][][]> | undefined;
2037
- source: string;
2038
- ownerId?: string | undefined;
2039
- surfaceId?: string | undefined;
2040
- drawnOn: "ceiling" | "floor";
2041
- cutsPrimary: boolean;
2042
- cutsAdjacent: boolean;
2043
- type: "floor-opening";
2044
2753
  } | {
2045
2754
  object: "node";
2046
2755
  name?: string | undefined;
@@ -2082,6 +2791,11 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
2082
2791
  url: string;
2083
2792
  repeat?: [number, number] | undefined;
2084
2793
  scale?: number | undefined;
2794
+ offset?: [number, number] | undefined;
2795
+ normalMap?: string | undefined;
2796
+ normalScale?: number | undefined;
2797
+ bumpMap?: string | undefined;
2798
+ bumpScale?: number | undefined;
2085
2799
  } | undefined;
2086
2800
  } | undefined;
2087
2801
  materialPreset?: string | undefined;
@@ -2168,28 +2882,75 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
2168
2882
  origin: [number, number];
2169
2883
  direction: [number, number];
2170
2884
  };
2171
- chainMode: "continuous" | "point-to-point";
2172
- mode: "angular" | "arc-length" | "center-mark" | "chord" | "coordinate" | "diameter" | "linear" | "radius";
2173
- featureCount: number;
2174
- showCenterMark: boolean;
2175
- prefix: string;
2176
- suffix: string;
2177
- textOverride: string | null;
2178
- datumPolicy: "centerline" | "finish-face" | "structural-face" | "wall-face";
2179
- terminator: "architectural-tick" | "dot" | "filled-arrow" | "open-arrow";
2180
- textPosition: "above" | "centered";
2181
- imperialPrecision: "1" | "1/16" | "1/2" | "1/4" | "1/8";
2182
- metricNotation: "meters" | "millimeters";
2183
- extensionStartGap: number;
2184
- extensionOvershoot: number;
2185
- drawingType: "floor-plan" | "foundation-plan" | "reflected-ceiling-plan" | "roof-plan" | "site-plan";
2186
- drawingOverrides: {
2187
- drawingType: "floor-plan" | "foundation-plan" | "reflected-ceiling-plan" | "roof-plan" | "site-plan";
2188
- presentation: "controlled" | "omit" | "shown";
2189
- suppressedSegmentIndexes: number[];
2190
- }[];
2191
- controllingDimensionId: `construction-dimension_${string}` | null;
2192
- type: "construction-dimension";
2885
+ chainMode: "continuous" | "point-to-point";
2886
+ mode: "angular" | "arc-length" | "center-mark" | "chord" | "coordinate" | "diameter" | "linear" | "radius";
2887
+ featureCount: number;
2888
+ showCenterMark: boolean;
2889
+ prefix: string;
2890
+ suffix: string;
2891
+ textOverride: string | null;
2892
+ datumPolicy: "centerline" | "finish-face" | "structural-face" | "wall-face";
2893
+ terminator: "architectural-tick" | "dot" | "filled-arrow" | "open-arrow";
2894
+ textPosition: "above" | "centered";
2895
+ imperialPrecision: "1" | "1/16" | "1/2" | "1/4" | "1/8";
2896
+ metricNotation: "meters" | "millimeters";
2897
+ extensionStartGap: number;
2898
+ extensionOvershoot: number;
2899
+ drawingType: "floor-plan" | "foundation-plan" | "reflected-ceiling-plan" | "roof-plan" | "site-plan";
2900
+ drawingOverrides: {
2901
+ drawingType: "floor-plan" | "foundation-plan" | "reflected-ceiling-plan" | "roof-plan" | "site-plan";
2902
+ presentation: "controlled" | "omit" | "shown";
2903
+ suppressedSegmentIndexes: number[];
2904
+ }[];
2905
+ controllingDimensionId: `construction-dimension_${string}` | null;
2906
+ type: "construction-dimension";
2907
+ } | {
2908
+ object: "node";
2909
+ name?: string | undefined;
2910
+ parentId: string | null;
2911
+ visible: boolean;
2912
+ camera?: {
2913
+ position: [number, number, number];
2914
+ target: [number, number, number];
2915
+ mode: "orthographic" | "perspective";
2916
+ fov?: number | undefined;
2917
+ zoom?: number | undefined;
2918
+ } | undefined;
2919
+ metadata: Record<string, unknown>;
2920
+ provenance?: {
2921
+ refs: {
2922
+ ns?: string | undefined;
2923
+ id: string;
2924
+ role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
2925
+ }[];
2926
+ lineage?: {
2927
+ op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
2928
+ fromIds: string[];
2929
+ } | undefined;
2930
+ } | undefined;
2931
+ id: `block_${string}`;
2932
+ children: string[];
2933
+ position: [number, number, number];
2934
+ rotation: number;
2935
+ supportSlabId?: string | undefined;
2936
+ topology: {
2937
+ vertices: {
2938
+ id: string;
2939
+ position: [number, number, number];
2940
+ }[];
2941
+ edges: {
2942
+ id: string;
2943
+ vertexIds: [string, string];
2944
+ }[];
2945
+ faces: {
2946
+ id: string;
2947
+ vertexIds: string[];
2948
+ materialSlot: string;
2949
+ }[];
2950
+ };
2951
+ slots: Record<string, string>;
2952
+ slotNames: Record<string, string>;
2953
+ type: "block";
2193
2954
  } | {
2194
2955
  object: "node";
2195
2956
  name?: string | undefined;
@@ -2566,6 +3327,16 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
2566
3327
  color: string;
2567
3328
  intensity: number;
2568
3329
  distance?: number | undefined;
3330
+ spot?: {
3331
+ direction: [number, number, number];
3332
+ angle: number;
3333
+ softness: number;
3334
+ } | undefined;
3335
+ shadows?: boolean | undefined;
3336
+ glow?: {
3337
+ size: number;
3338
+ strength: number;
3339
+ } | undefined;
2569
3340
  }[];
2570
3341
  undersides: {
2571
3342
  part?: string | undefined;
@@ -2584,6 +3355,17 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
2584
3355
  }[] | undefined;
2585
3356
  cutout: boolean;
2586
3357
  collider: boolean;
3358
+ shape?: {
3359
+ tolerance: number;
3360
+ bands: {
3361
+ y0: number;
3362
+ y1: number;
3363
+ polygons: {
3364
+ outer: [number, number][];
3365
+ holes?: [number, number][][] | undefined;
3366
+ }[];
3367
+ }[];
3368
+ } | undefined;
2587
3369
  triangles: number;
2588
3370
  coverage?: number | undefined;
2589
3371
  uncovered?: {
@@ -2598,6 +3380,19 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
2598
3380
  } | undefined;
2599
3381
  inputs: string;
2600
3382
  } | undefined;
3383
+ drop?: number | undefined;
3384
+ } | undefined;
3385
+ roomType?: "deck" | "patio" | "porch" | undefined;
3386
+ porchFraming?: {
3387
+ auto?: boolean | undefined;
3388
+ postSize?: string | undefined;
3389
+ postSpacing?: number | undefined;
3390
+ beamSize?: string | undefined;
3391
+ } | undefined;
3392
+ decking?: {
3393
+ boardSize?: "2x4" | "2x6" | "5/4x6" | "composite" | undefined;
3394
+ gap?: number | undefined;
3395
+ direction?: "diagonal" | "parallel" | "perpendicular" | undefined;
2601
3396
  } | undefined;
2602
3397
  ceiling?: {
2603
3398
  regions?: {
@@ -2674,6 +3469,11 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
2674
3469
  url: string;
2675
3470
  repeat?: [number, number] | undefined;
2676
3471
  scale?: number | undefined;
3472
+ offset?: [number, number] | undefined;
3473
+ normalMap?: string | undefined;
3474
+ normalScale?: number | undefined;
3475
+ bumpMap?: string | undefined;
3476
+ bumpScale?: number | undefined;
2677
3477
  } | undefined;
2678
3478
  } | undefined;
2679
3479
  materialPreset?: string | undefined;
@@ -2688,6 +3488,29 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
2688
3488
  }[];
2689
3489
  openingIds?: string[] | undefined;
2690
3490
  height?: number | undefined;
3491
+ buildUp?: {
3492
+ presetId?: string | undefined;
3493
+ finish?: {
3494
+ kind: "drywall" | "plaster" | "wood-plank";
3495
+ thickness: number;
3496
+ name?: string | undefined;
3497
+ } | undefined;
3498
+ framing?: {
3499
+ system: "joists" | "truss-chords";
3500
+ size: "2x10" | "2x12" | "2x4" | "2x6" | "2x8";
3501
+ spacing: number;
3502
+ } | undefined;
3503
+ decking?: {
3504
+ kind: "osb" | "plywood";
3505
+ thickness: number;
3506
+ name?: string | undefined;
3507
+ } | undefined;
3508
+ insulation?: {
3509
+ kind: "batt" | "blown" | "rigid";
3510
+ thickness: number;
3511
+ name?: string | undefined;
3512
+ } | undefined;
3513
+ } | undefined;
2691
3514
  regions?: {
2692
3515
  id: string;
2693
3516
  polygon: [number, number][];
@@ -2697,78 +3520,6 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
2697
3520
  zoneId?: string | undefined;
2698
3521
  autoFromWalls: boolean;
2699
3522
  type: "ceiling";
2700
- } | {
2701
- object: "node";
2702
- name?: string | undefined;
2703
- parentId: string | null;
2704
- visible: boolean;
2705
- camera?: {
2706
- position: [number, number, number];
2707
- target: [number, number, number];
2708
- mode: "orthographic" | "perspective";
2709
- fov?: number | undefined;
2710
- zoom?: number | undefined;
2711
- } | undefined;
2712
- metadata: Record<string, unknown>;
2713
- provenance?: {
2714
- refs: {
2715
- ns?: string | undefined;
2716
- id: string;
2717
- role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
2718
- }[];
2719
- lineage?: {
2720
- op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
2721
- fromIds: string[];
2722
- } | undefined;
2723
- } | undefined;
2724
- id: `sseg_${string}`;
2725
- material?: {
2726
- id?: string | undefined;
2727
- preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
2728
- properties?: {
2729
- color: string;
2730
- roughness: number;
2731
- metalness: number;
2732
- opacity: number;
2733
- transparent: boolean;
2734
- side: "back" | "double" | "front";
2735
- } | undefined;
2736
- texture?: {
2737
- url: string;
2738
- repeat?: [number, number] | undefined;
2739
- scale?: number | undefined;
2740
- } | undefined;
2741
- } | undefined;
2742
- materialPreset?: string | undefined;
2743
- slots?: Record<string, string> | undefined;
2744
- position: [number, number, number];
2745
- rotation: number;
2746
- segmentType: "landing" | "stair";
2747
- width: number;
2748
- length: number;
2749
- height: number;
2750
- stepCount: number;
2751
- attachmentSide: "front" | "left" | "right";
2752
- fillToFloor: boolean;
2753
- construction?: {
2754
- mode: "center-stringer" | "open" | "side-stringers" | "solid" | "waist";
2755
- waistThickness: number;
2756
- treadThickness: number;
2757
- riserThickness: number;
2758
- nosing: number;
2759
- finishThickness: number;
2760
- closedRisers: boolean;
2761
- stringerWidth: number;
2762
- stringerDepth: number;
2763
- } | undefined;
2764
- winder?: {
2765
- turn: "left" | "right";
2766
- innerGap: number;
2767
- walkingLineOffset: number;
2768
- division: "equal-angle" | "equal-going";
2769
- } | undefined;
2770
- thickness: number;
2771
- type: "stair-segment";
2772
3523
  } | {
2773
3524
  object: "node";
2774
3525
  name?: string | undefined;
@@ -2809,6 +3560,11 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
2809
3560
  url: string;
2810
3561
  repeat?: [number, number] | undefined;
2811
3562
  scale?: number | undefined;
3563
+ offset?: [number, number] | undefined;
3564
+ normalMap?: string | undefined;
3565
+ normalScale?: number | undefined;
3566
+ bumpMap?: string | undefined;
3567
+ bumpScale?: number | undefined;
2812
3568
  } | undefined;
2813
3569
  } | undefined;
2814
3570
  materialPreset?: string | undefined;
@@ -2827,6 +3583,11 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
2827
3583
  url: string;
2828
3584
  repeat?: [number, number] | undefined;
2829
3585
  scale?: number | undefined;
3586
+ offset?: [number, number] | undefined;
3587
+ normalMap?: string | undefined;
3588
+ normalScale?: number | undefined;
3589
+ bumpMap?: string | undefined;
3590
+ bumpScale?: number | undefined;
2830
3591
  } | undefined;
2831
3592
  } | undefined;
2832
3593
  railingMaterialPreset?: string | undefined;
@@ -2845,6 +3606,11 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
2845
3606
  url: string;
2846
3607
  repeat?: [number, number] | undefined;
2847
3608
  scale?: number | undefined;
3609
+ offset?: [number, number] | undefined;
3610
+ normalMap?: string | undefined;
3611
+ normalScale?: number | undefined;
3612
+ bumpMap?: string | undefined;
3613
+ bumpScale?: number | undefined;
2848
3614
  } | undefined;
2849
3615
  } | undefined;
2850
3616
  treadMaterialPreset?: string | undefined;
@@ -2863,6 +3629,11 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
2863
3629
  url: string;
2864
3630
  repeat?: [number, number] | undefined;
2865
3631
  scale?: number | undefined;
3632
+ offset?: [number, number] | undefined;
3633
+ normalMap?: string | undefined;
3634
+ normalScale?: number | undefined;
3635
+ bumpMap?: string | undefined;
3636
+ bumpScale?: number | undefined;
2866
3637
  } | undefined;
2867
3638
  } | undefined;
2868
3639
  sideMaterialPreset?: string | undefined;
@@ -2901,6 +3672,17 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
2901
3672
  stringerWidth: number;
2902
3673
  stringerDepth: number;
2903
3674
  } | undefined;
3675
+ structure?: {
3676
+ type: "concrete" | "steel-stringers" | "wood-stringers";
3677
+ stringerStock: "2x10" | "2x12";
3678
+ stringerType: "cut" | "housed";
3679
+ stringerSpacing: number;
3680
+ stringerCount?: number | undefined;
3681
+ treadStock?: "2x12" | "2x6-pair" | "5/4x6-pair" | "plywood-finish" | undefined;
3682
+ closedRisers?: boolean | undefined;
3683
+ treated?: boolean | undefined;
3684
+ nosing?: number | undefined;
3685
+ } | undefined;
2904
3686
  innerRadius: number;
2905
3687
  sweepAngle: number;
2906
3688
  topLandingMode: "integrated" | "none";
@@ -3006,145 +3788,11 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
3006
3788
  realLengthMeters: number;
3007
3789
  measuredLengthUnits: number;
3008
3790
  metersPerUnit: number;
3791
+ displayLength?: number | undefined;
3792
+ displayUnit?: "centimeters" | "feet" | "inches" | "meters" | undefined;
3009
3793
  label: string;
3010
3794
  } | null;
3011
3795
  type: "guide";
3012
- } | {
3013
- object: "node";
3014
- name?: string | undefined;
3015
- parentId: string | null;
3016
- visible: boolean;
3017
- camera?: {
3018
- position: [number, number, number];
3019
- target: [number, number, number];
3020
- mode: "orthographic" | "perspective";
3021
- fov?: number | undefined;
3022
- zoom?: number | undefined;
3023
- } | undefined;
3024
- metadata: Record<string, unknown>;
3025
- provenance?: {
3026
- refs: {
3027
- ns?: string | undefined;
3028
- id: string;
3029
- role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
3030
- }[];
3031
- lineage?: {
3032
- op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
3033
- fromIds: string[];
3034
- } | undefined;
3035
- } | undefined;
3036
- id: `measurement_${string}`;
3037
- measurement: {
3038
- kind: "distance";
3039
- points: [{
3040
- kind: "feature";
3041
- reference: {
3042
- nodeId: string;
3043
- featureId: string;
3044
- parameters?: Record<string, string | number | boolean> | undefined;
3045
- };
3046
- fallback: [number, number, number];
3047
- } | [number, number, number], {
3048
- kind: "feature";
3049
- reference: {
3050
- nodeId: string;
3051
- featureId: string;
3052
- parameters?: Record<string, string | number | boolean> | undefined;
3053
- };
3054
- fallback: [number, number, number];
3055
- } | [number, number, number]];
3056
- } | {
3057
- kind: "angle";
3058
- points: [{
3059
- kind: "feature";
3060
- reference: {
3061
- nodeId: string;
3062
- featureId: string;
3063
- parameters?: Record<string, string | number | boolean> | undefined;
3064
- };
3065
- fallback: [number, number, number];
3066
- } | [number, number, number], {
3067
- kind: "feature";
3068
- reference: {
3069
- nodeId: string;
3070
- featureId: string;
3071
- parameters?: Record<string, string | number | boolean> | undefined;
3072
- };
3073
- fallback: [number, number, number];
3074
- } | [number, number, number], {
3075
- kind: "feature";
3076
- reference: {
3077
- nodeId: string;
3078
- featureId: string;
3079
- parameters?: Record<string, string | number | boolean> | undefined;
3080
- };
3081
- fallback: [number, number, number];
3082
- } | [number, number, number]];
3083
- } | {
3084
- kind: "area";
3085
- base: ({
3086
- kind: "feature";
3087
- reference: {
3088
- nodeId: string;
3089
- featureId: string;
3090
- parameters?: Record<string, string | number | boolean> | undefined;
3091
- };
3092
- fallback: [number, number, number];
3093
- } | [number, number, number])[];
3094
- } | {
3095
- kind: "perimeter";
3096
- base: ({
3097
- kind: "feature";
3098
- reference: {
3099
- nodeId: string;
3100
- featureId: string;
3101
- parameters?: Record<string, string | number | boolean> | undefined;
3102
- };
3103
- fallback: [number, number, number];
3104
- } | [number, number, number])[];
3105
- } | {
3106
- kind: "volume";
3107
- base: ({
3108
- kind: "feature";
3109
- reference: {
3110
- nodeId: string;
3111
- featureId: string;
3112
- parameters?: Record<string, string | number | boolean> | undefined;
3113
- };
3114
- fallback: [number, number, number];
3115
- } | [number, number, number])[];
3116
- extrusion: [number, number, number];
3117
- };
3118
- type: "measurement";
3119
- } | {
3120
- object: "node";
3121
- name?: string | undefined;
3122
- parentId: string | null;
3123
- visible: boolean;
3124
- camera?: {
3125
- position: [number, number, number];
3126
- target: [number, number, number];
3127
- mode: "orthographic" | "perspective";
3128
- fov?: number | undefined;
3129
- zoom?: number | undefined;
3130
- } | undefined;
3131
- metadata: Record<string, unknown>;
3132
- provenance?: {
3133
- refs: {
3134
- ns?: string | undefined;
3135
- id: string;
3136
- role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
3137
- }[];
3138
- lineage?: {
3139
- op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
3140
- fromIds: string[];
3141
- } | undefined;
3142
- } | undefined;
3143
- id: `spawn_${string}`;
3144
- position: [number, number, number];
3145
- rotation: number;
3146
- supportSlabId?: string | undefined;
3147
- type: "spawn";
3148
3796
  } | {
3149
3797
  object: "node";
3150
3798
  name?: string | undefined;
@@ -3200,6 +3848,11 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
3200
3848
  url: string;
3201
3849
  repeat?: [number, number] | undefined;
3202
3850
  scale?: number | undefined;
3851
+ offset?: [number, number] | undefined;
3852
+ normalMap?: string | undefined;
3853
+ normalScale?: number | undefined;
3854
+ bumpMap?: string | undefined;
3855
+ bumpScale?: number | undefined;
3203
3856
  } | undefined;
3204
3857
  } | undefined;
3205
3858
  materialPreset?: string | undefined;
@@ -3229,36 +3882,29 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
3229
3882
  fromIds: string[];
3230
3883
  } | undefined;
3231
3884
  } | undefined;
3232
- id: `duct-segment_${string}`;
3233
- path: [number, number, number][];
3234
- autoHangers?: boolean | undefined;
3235
- hangerOverrides?: Record<string, {
3236
- fraction?: number | undefined;
3237
- skipped?: boolean | undefined;
3238
- hostId?: string | undefined;
3239
- }> | undefined;
3240
- hangerStyle?: "double" | "single" | undefined;
3241
- hangerSpacing?: number | undefined;
3242
- hangerMaxReach?: number | undefined;
3243
- wallAttachment?: {
3244
- wallId: `wall_${string}`;
3245
- side: "back" | "front";
3246
- startUV: [number, number];
3247
- endUV: [number, number];
3248
- offset: number;
3249
- } | undefined;
3885
+ id: `duct-fitting_${string}`;
3886
+ position: [number, number, number];
3887
+ rotation: [number, number, number];
3888
+ fittingType: "access-panel" | "coupling" | "cross" | "damper" | "elbow" | "end-cap" | "reducer" | "tee" | "transition";
3250
3889
  shape: "oval" | "rect" | "round";
3251
- diameter: number;
3890
+ inletShape?: "oval" | "rect" | "round" | undefined;
3891
+ outletShape?: "oval" | "rect" | "round" | undefined;
3252
3892
  width: number;
3253
3893
  height: number;
3254
- roll: number;
3255
- ductMaterial: "duct-board" | "flex" | "sheet-metal" | "spiral";
3256
- seamDetail: boolean;
3257
- insulated: boolean;
3258
- insulationR: number;
3894
+ shape2: "oval" | "rect" | "round";
3895
+ width2: number;
3896
+ height2: number;
3897
+ angle: number;
3898
+ branchAngle: number;
3899
+ diameter: number;
3900
+ diameter2: number;
3901
+ ductMaterial: "duct-board" | "flex" | "sheet-metal";
3259
3902
  system: "return" | "supply";
3903
+ damperAngle: number;
3904
+ panelWidth: number;
3905
+ panelHeight: number;
3260
3906
  slots?: Record<string, string> | undefined;
3261
- type: "duct-segment";
3907
+ type: "duct-fitting";
3262
3908
  } | {
3263
3909
  object: "node";
3264
3910
  name?: string | undefined;
@@ -3320,12 +3966,23 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
3320
3966
  fromIds: string[];
3321
3967
  } | undefined;
3322
3968
  } | undefined;
3323
- id: `lineset_${string}`;
3324
- path: [number, number, number][];
3325
- suctionDiameter: number;
3326
- liquidDiameter: number;
3327
- insulated: boolean;
3328
- type: "lineset";
3969
+ id: `hvac-equipment_${string}`;
3970
+ position: [number, number, number];
3971
+ rotation: number;
3972
+ supportSlabId?: string | undefined;
3973
+ equipmentType: "air-handler" | "condenser" | "furnace";
3974
+ width: number;
3975
+ depth: number;
3976
+ height: number;
3977
+ supplyShape: "oval" | "rect" | "round";
3978
+ returnShape: "oval" | "rect" | "round";
3979
+ supplyDiameter: number;
3980
+ returnDiameter: number;
3981
+ supplyWidth: number;
3982
+ supplyHeight: number;
3983
+ returnWidth: number;
3984
+ returnHeight: number;
3985
+ type: "hvac-equipment";
3329
3986
  } | {
3330
3987
  object: "node";
3331
3988
  name?: string | undefined;
@@ -3424,13 +4081,17 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
3424
4081
  fromIds: string[];
3425
4082
  } | undefined;
3426
4083
  } | undefined;
3427
- id: `pipe-trap_${string}`;
4084
+ id: `pipe-fitting_${string}`;
3428
4085
  position: [number, number, number];
3429
- rotation: number;
4086
+ rotation: [number, number, number];
4087
+ fittingType: "cleanout" | "coupling" | "cross" | "elbow" | "end-cap" | "reducer" | "sanitary-tee" | "wye";
4088
+ angle: number;
3430
4089
  diameter: number;
4090
+ diameter2: number;
4091
+ cleanoutStyle: "end" | "inline";
3431
4092
  pipeMaterial: "abs" | "cast-iron" | "pvc";
3432
- armLengthM: number;
3433
- type: "pipe-trap";
4093
+ system: "vent" | "waste";
4094
+ type: "pipe-fitting";
3434
4095
  } | {
3435
4096
  object: "node";
3436
4097
  name?: string | undefined;
@@ -3456,7 +4117,7 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
3456
4117
  } | undefined;
3457
4118
  } | undefined;
3458
4119
  id: `level_${string}`;
3459
- children: (`block_${string}` | `ceiling_${string}` | `column_${string}` | `construction-dimension_${string}` | `duct-fitting_${string}` | `duct-segment_${string}` | `duct-terminal_${string}` | `fence_${string}` | `floor-opening_${string}` | `guide_${string}` | `hvac-equipment_${string}` | `imesh_${string}` | `item_${string}` | `lineset_${string}` | `liquid-line_${string}` | `measurement_${string}` | `pipe-fitting_${string}` | `pipe-segment_${string}` | `pipe-trap_${string}` | `procedural-item_${string}` | `roof_${string}` | `scan_${string}` | `separator_${string}` | `shelf_${string}` | `slab_${string}` | `spawn_${string}` | `stair_${string}` | `structural-grid_${string}` | `wall_${string}` | `zone_${string}`)[];
4120
+ children: (`beam_${string}` | `block_${string}` | `ceiling_${string}` | `column_${string}` | `construction-dimension_${string}` | `duct-fitting_${string}` | `duct-segment_${string}` | `duct-terminal_${string}` | `fence_${string}` | `floor-opening_${string}` | `guide_${string}` | `hvac-equipment_${string}` | `imesh_${string}` | `item_${string}` | `lineset_${string}` | `liquid-line_${string}` | `measurement_${string}` | `pipe-fitting_${string}` | `pipe-segment_${string}` | `pipe-trap_${string}` | `procedural-item_${string}` | `roof_${string}` | `scan_${string}` | `separator_${string}` | `shelf_${string}` | `slab_${string}` | `spawn_${string}` | `stair_${string}` | `structural-grid_${string}` | `wall_${string}` | `zone_${string}`)[];
3460
4121
  level: number;
3461
4122
  baseElevation: number;
3462
4123
  height?: number | undefined;
@@ -3501,6 +4162,11 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
3501
4162
  url: string;
3502
4163
  repeat?: [number, number] | undefined;
3503
4164
  scale?: number | undefined;
4165
+ offset?: [number, number] | undefined;
4166
+ normalMap?: string | undefined;
4167
+ normalScale?: number | undefined;
4168
+ bumpMap?: string | undefined;
4169
+ bumpScale?: number | undefined;
3504
4170
  } | undefined;
3505
4171
  } | undefined;
3506
4172
  materialPreset?: string | undefined;
@@ -3627,6 +4293,11 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
3627
4293
  url: string;
3628
4294
  repeat?: [number, number] | undefined;
3629
4295
  scale?: number | undefined;
4296
+ offset?: [number, number] | undefined;
4297
+ normalMap?: string | undefined;
4298
+ normalScale?: number | undefined;
4299
+ bumpMap?: string | undefined;
4300
+ bumpScale?: number | undefined;
3630
4301
  } | undefined;
3631
4302
  } | undefined;
3632
4303
  materialPreset?: string | undefined;
@@ -3645,6 +4316,11 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
3645
4316
  url: string;
3646
4317
  repeat?: [number, number] | undefined;
3647
4318
  scale?: number | undefined;
4319
+ offset?: [number, number] | undefined;
4320
+ normalMap?: string | undefined;
4321
+ normalScale?: number | undefined;
4322
+ bumpMap?: string | undefined;
4323
+ bumpScale?: number | undefined;
3648
4324
  } | undefined;
3649
4325
  } | undefined;
3650
4326
  topMaterialPreset?: string | undefined;
@@ -3663,6 +4339,11 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
3663
4339
  url: string;
3664
4340
  repeat?: [number, number] | undefined;
3665
4341
  scale?: number | undefined;
4342
+ offset?: [number, number] | undefined;
4343
+ normalMap?: string | undefined;
4344
+ normalScale?: number | undefined;
4345
+ bumpMap?: string | undefined;
4346
+ bumpScale?: number | undefined;
3666
4347
  } | undefined;
3667
4348
  } | undefined;
3668
4349
  sideMaterialPreset?: string | undefined;
@@ -3681,6 +4362,11 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
3681
4362
  url: string;
3682
4363
  repeat?: [number, number] | undefined;
3683
4364
  scale?: number | undefined;
4365
+ offset?: [number, number] | undefined;
4366
+ normalMap?: string | undefined;
4367
+ normalScale?: number | undefined;
4368
+ bumpMap?: string | undefined;
4369
+ bumpScale?: number | undefined;
3684
4370
  } | undefined;
3685
4371
  } | undefined;
3686
4372
  wallMaterialPreset?: string | undefined;
@@ -3711,6 +4397,101 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
3711
4397
  windowSillThickness: number;
3712
4398
  children: `window_${string}`[];
3713
4399
  type: "dormer";
4400
+ } | {
4401
+ object: "node";
4402
+ name?: string | undefined;
4403
+ parentId: string | null;
4404
+ visible: boolean;
4405
+ camera?: {
4406
+ position: [number, number, number];
4407
+ target: [number, number, number];
4408
+ mode: "orthographic" | "perspective";
4409
+ fov?: number | undefined;
4410
+ zoom?: number | undefined;
4411
+ } | undefined;
4412
+ metadata: Record<string, unknown>;
4413
+ provenance?: {
4414
+ refs: {
4415
+ ns?: string | undefined;
4416
+ id: string;
4417
+ role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
4418
+ }[];
4419
+ lineage?: {
4420
+ op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
4421
+ fromIds: string[];
4422
+ } | undefined;
4423
+ } | undefined;
4424
+ id: `skylight_${string}`;
4425
+ material?: {
4426
+ id?: string | undefined;
4427
+ preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
4428
+ properties?: {
4429
+ color: string;
4430
+ roughness: number;
4431
+ metalness: number;
4432
+ opacity: number;
4433
+ transparent: boolean;
4434
+ side: "back" | "double" | "front";
4435
+ } | undefined;
4436
+ texture?: {
4437
+ url: string;
4438
+ repeat?: [number, number] | undefined;
4439
+ scale?: number | undefined;
4440
+ offset?: [number, number] | undefined;
4441
+ normalMap?: string | undefined;
4442
+ normalScale?: number | undefined;
4443
+ bumpMap?: string | undefined;
4444
+ bumpScale?: number | undefined;
4445
+ } | undefined;
4446
+ } | undefined;
4447
+ materialPreset?: string | undefined;
4448
+ glassMaterial?: {
4449
+ id?: string | undefined;
4450
+ preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
4451
+ properties?: {
4452
+ color: string;
4453
+ roughness: number;
4454
+ metalness: number;
4455
+ opacity: number;
4456
+ transparent: boolean;
4457
+ side: "back" | "double" | "front";
4458
+ } | undefined;
4459
+ texture?: {
4460
+ url: string;
4461
+ repeat?: [number, number] | undefined;
4462
+ scale?: number | undefined;
4463
+ offset?: [number, number] | undefined;
4464
+ normalMap?: string | undefined;
4465
+ normalScale?: number | undefined;
4466
+ bumpMap?: string | undefined;
4467
+ bumpScale?: number | undefined;
4468
+ } | undefined;
4469
+ } | undefined;
4470
+ glassMaterialPreset?: string | undefined;
4471
+ roofSegmentId?: string | undefined;
4472
+ position: [number, number, number];
4473
+ rotation: number;
4474
+ width: number;
4475
+ height: number;
4476
+ frameThickness: number;
4477
+ frameDepth: number;
4478
+ skylightType: "flat" | "lantern" | "opening" | "sliding" | "walk-on";
4479
+ glassThickness: number;
4480
+ lanternHeight: number;
4481
+ lanternTopScale: number;
4482
+ openingAngle: number;
4483
+ openingSide: "bottom" | "left" | "right" | "top";
4484
+ operationState: number;
4485
+ motorHousing: boolean;
4486
+ slideFraction: number;
4487
+ slideDirection: "x" | "z";
4488
+ trackWidth: number;
4489
+ motorHousingSize: number;
4490
+ curb: boolean;
4491
+ curbHeight: number;
4492
+ cutoutOffset: number;
4493
+ surfaceNormal?: [number, number, number] | undefined;
4494
+ type: "skylight";
3714
4495
  } | {
3715
4496
  object: "node";
3716
4497
  name?: string | undefined;
@@ -3886,6 +4667,45 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
3886
4667
  points: [number, number][];
3887
4668
  }[];
3888
4669
  } | undefined;
4670
+ wallTypes?: {
4671
+ id: string;
4672
+ label: string;
4673
+ assembly: {
4674
+ layers: {
4675
+ id: string;
4676
+ role: "air" | "covering" | "deck" | "fill" | "finish" | "furring" | "glazing" | "insulation" | "lining" | "membrane" | "sheathing" | "shell" | "structure" | "substrate" | "underlay";
4677
+ thickness: number;
4678
+ core?: true | undefined;
4679
+ spacing?: number | undefined;
4680
+ material?: string | undefined;
4681
+ slot?: string | undefined;
4682
+ returns?: boolean | undefined;
4683
+ display?: "construction" | "finished" | undefined;
4684
+ inset?: number | undefined;
4685
+ bottom?: number | undefined;
4686
+ lift?: number | undefined;
4687
+ src?: string | undefined;
4688
+ }[];
4689
+ backing?: {
4690
+ id: string;
4691
+ role: "air" | "covering" | "deck" | "fill" | "finish" | "furring" | "glazing" | "insulation" | "lining" | "membrane" | "sheathing" | "shell" | "structure" | "substrate" | "underlay";
4692
+ thickness: number;
4693
+ core?: true | undefined;
4694
+ spacing?: number | undefined;
4695
+ material?: string | undefined;
4696
+ slot?: string | undefined;
4697
+ returns?: boolean | undefined;
4698
+ display?: "construction" | "finished" | undefined;
4699
+ inset?: number | undefined;
4700
+ bottom?: number | undefined;
4701
+ lift?: number | undefined;
4702
+ src?: string | undefined;
4703
+ }[] | undefined;
4704
+ face?: "exterior" | "front" | undefined;
4705
+ presetId?: string | undefined;
4706
+ cavityInsulation?: string | undefined;
4707
+ };
4708
+ }[] | undefined;
3889
4709
  children: string[];
3890
4710
  type: "site";
3891
4711
  } | {
@@ -4028,6 +4848,11 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
4028
4848
  url: string;
4029
4849
  repeat?: [number, number] | undefined;
4030
4850
  scale?: number | undefined;
4851
+ offset?: [number, number] | undefined;
4852
+ normalMap?: string | undefined;
4853
+ normalScale?: number | undefined;
4854
+ bumpMap?: string | undefined;
4855
+ bumpScale?: number | undefined;
4031
4856
  } | undefined;
4032
4857
  } | undefined;
4033
4858
  materialPreset?: string | undefined;
@@ -4188,6 +5013,11 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
4188
5013
  url: string;
4189
5014
  repeat?: [number, number] | undefined;
4190
5015
  scale?: number | undefined;
5016
+ offset?: [number, number] | undefined;
5017
+ normalMap?: string | undefined;
5018
+ normalScale?: number | undefined;
5019
+ bumpMap?: string | undefined;
5020
+ bumpScale?: number | undefined;
4191
5021
  } | undefined;
4192
5022
  } | undefined;
4193
5023
  materialPreset?: string | undefined;
@@ -4324,6 +5154,11 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
4324
5154
  url: string;
4325
5155
  repeat?: [number, number] | undefined;
4326
5156
  scale?: number | undefined;
5157
+ offset?: [number, number] | undefined;
5158
+ normalMap?: string | undefined;
5159
+ normalScale?: number | undefined;
5160
+ bumpMap?: string | undefined;
5161
+ bumpScale?: number | undefined;
4327
5162
  } | undefined;
4328
5163
  } | undefined;
4329
5164
  slots?: Record<string, string> | undefined;
@@ -4384,6 +5219,11 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
4384
5219
  url: string;
4385
5220
  repeat?: [number, number] | undefined;
4386
5221
  scale?: number | undefined;
5222
+ offset?: [number, number] | undefined;
5223
+ normalMap?: string | undefined;
5224
+ normalScale?: number | undefined;
5225
+ bumpMap?: string | undefined;
5226
+ bumpScale?: number | undefined;
4387
5227
  } | undefined;
4388
5228
  } | undefined;
4389
5229
  materialPreset?: string | undefined;
@@ -4436,6 +5276,11 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
4436
5276
  url: string;
4437
5277
  repeat?: [number, number] | undefined;
4438
5278
  scale?: number | undefined;
5279
+ offset?: [number, number] | undefined;
5280
+ normalMap?: string | undefined;
5281
+ normalScale?: number | undefined;
5282
+ bumpMap?: string | undefined;
5283
+ bumpScale?: number | undefined;
4439
5284
  } | undefined;
4440
5285
  } | undefined;
4441
5286
  slots?: Record<string, string> | undefined;
@@ -4491,6 +5336,11 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
4491
5336
  url: string;
4492
5337
  repeat?: [number, number] | undefined;
4493
5338
  scale?: number | undefined;
5339
+ offset?: [number, number] | undefined;
5340
+ normalMap?: string | undefined;
5341
+ normalScale?: number | undefined;
5342
+ bumpMap?: string | undefined;
5343
+ bumpScale?: number | undefined;
4494
5344
  } | undefined;
4495
5345
  } | undefined;
4496
5346
  slots?: Record<string, string> | undefined;
@@ -4544,6 +5394,11 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
4544
5394
  url: string;
4545
5395
  repeat?: [number, number] | undefined;
4546
5396
  scale?: number | undefined;
5397
+ offset?: [number, number] | undefined;
5398
+ normalMap?: string | undefined;
5399
+ normalScale?: number | undefined;
5400
+ bumpMap?: string | undefined;
5401
+ bumpScale?: number | undefined;
4547
5402
  } | undefined;
4548
5403
  } | undefined;
4549
5404
  slots?: Record<string, string> | undefined;
@@ -4598,6 +5453,11 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
4598
5453
  url: string;
4599
5454
  repeat?: [number, number] | undefined;
4600
5455
  scale?: number | undefined;
5456
+ offset?: [number, number] | undefined;
5457
+ normalMap?: string | undefined;
5458
+ normalScale?: number | undefined;
5459
+ bumpMap?: string | undefined;
5460
+ bumpScale?: number | undefined;
4601
5461
  } | undefined;
4602
5462
  } | undefined;
4603
5463
  slots?: Record<string, string> | undefined;
@@ -4665,6 +5525,11 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
4665
5525
  url: string;
4666
5526
  repeat?: [number, number] | undefined;
4667
5527
  scale?: number | undefined;
5528
+ offset?: [number, number] | undefined;
5529
+ normalMap?: string | undefined;
5530
+ normalScale?: number | undefined;
5531
+ bumpMap?: string | undefined;
5532
+ bumpScale?: number | undefined;
4668
5533
  } | undefined;
4669
5534
  } | undefined;
4670
5535
  materialPreset?: string | undefined;
@@ -4683,6 +5548,11 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
4683
5548
  url: string;
4684
5549
  repeat?: [number, number] | undefined;
4685
5550
  scale?: number | undefined;
5551
+ offset?: [number, number] | undefined;
5552
+ normalMap?: string | undefined;
5553
+ normalScale?: number | undefined;
5554
+ bumpMap?: string | undefined;
5555
+ bumpScale?: number | undefined;
4686
5556
  } | undefined;
4687
5557
  } | undefined;
4688
5558
  topMaterialPreset?: string | undefined;
@@ -4764,6 +5634,11 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
4764
5634
  url: string;
4765
5635
  repeat?: [number, number] | undefined;
4766
5636
  scale?: number | undefined;
5637
+ offset?: [number, number] | undefined;
5638
+ normalMap?: string | undefined;
5639
+ normalScale?: number | undefined;
5640
+ bumpMap?: string | undefined;
5641
+ bumpScale?: number | undefined;
4767
5642
  } | undefined;
4768
5643
  } | undefined;
4769
5644
  materialPreset?: string | undefined;
@@ -4782,6 +5657,11 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
4782
5657
  url: string;
4783
5658
  repeat?: [number, number] | undefined;
4784
5659
  scale?: number | undefined;
5660
+ offset?: [number, number] | undefined;
5661
+ normalMap?: string | undefined;
5662
+ normalScale?: number | undefined;
5663
+ bumpMap?: string | undefined;
5664
+ bumpScale?: number | undefined;
4785
5665
  } | undefined;
4786
5666
  } | undefined;
4787
5667
  panelMaterialPreset?: string | undefined;
@@ -4802,91 +5682,6 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
4802
5682
  frameDepth: number;
4803
5683
  surfaceNormal?: [number, number, number] | undefined;
4804
5684
  type: "solar-panel";
4805
- } | {
4806
- object: "node";
4807
- name?: string | undefined;
4808
- parentId: string | null;
4809
- visible: boolean;
4810
- camera?: {
4811
- position: [number, number, number];
4812
- target: [number, number, number];
4813
- mode: "orthographic" | "perspective";
4814
- fov?: number | undefined;
4815
- zoom?: number | undefined;
4816
- } | undefined;
4817
- metadata: Record<string, unknown>;
4818
- provenance?: {
4819
- refs: {
4820
- ns?: string | undefined;
4821
- id: string;
4822
- role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
4823
- }[];
4824
- lineage?: {
4825
- op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
4826
- fromIds: string[];
4827
- } | undefined;
4828
- } | undefined;
4829
- id: `skylight_${string}`;
4830
- material?: {
4831
- id?: string | undefined;
4832
- preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
4833
- properties?: {
4834
- color: string;
4835
- roughness: number;
4836
- metalness: number;
4837
- opacity: number;
4838
- transparent: boolean;
4839
- side: "back" | "double" | "front";
4840
- } | undefined;
4841
- texture?: {
4842
- url: string;
4843
- repeat?: [number, number] | undefined;
4844
- scale?: number | undefined;
4845
- } | undefined;
4846
- } | undefined;
4847
- materialPreset?: string | undefined;
4848
- glassMaterial?: {
4849
- id?: string | undefined;
4850
- preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
4851
- properties?: {
4852
- color: string;
4853
- roughness: number;
4854
- metalness: number;
4855
- opacity: number;
4856
- transparent: boolean;
4857
- side: "back" | "double" | "front";
4858
- } | undefined;
4859
- texture?: {
4860
- url: string;
4861
- repeat?: [number, number] | undefined;
4862
- scale?: number | undefined;
4863
- } | undefined;
4864
- } | undefined;
4865
- glassMaterialPreset?: string | undefined;
4866
- roofSegmentId?: string | undefined;
4867
- position: [number, number, number];
4868
- rotation: number;
4869
- width: number;
4870
- height: number;
4871
- frameThickness: number;
4872
- frameDepth: number;
4873
- skylightType: "flat" | "lantern" | "opening" | "sliding" | "walk-on";
4874
- glassThickness: number;
4875
- lanternHeight: number;
4876
- lanternTopScale: number;
4877
- openingAngle: number;
4878
- openingSide: "bottom" | "left" | "right" | "top";
4879
- operationState: number;
4880
- motorHousing: boolean;
4881
- slideFraction: number;
4882
- slideDirection: "x" | "z";
4883
- trackWidth: number;
4884
- motorHousingSize: number;
4885
- curb: boolean;
4886
- curbHeight: number;
4887
- cutoutOffset: number;
4888
- surfaceNormal?: [number, number, number] | undefined;
4889
- type: "skylight";
4890
5685
  } | {
4891
5686
  object: "node";
4892
5687
  name?: string | undefined;
@@ -4927,6 +5722,11 @@ export declare function markSlabChangeDependents(previous: SlabNode, next: SlabN
4927
5722
  url: string;
4928
5723
  repeat?: [number, number] | undefined;
4929
5724
  scale?: number | undefined;
5725
+ offset?: [number, number] | undefined;
5726
+ normalMap?: string | undefined;
5727
+ normalScale?: number | undefined;
5728
+ bumpMap?: string | undefined;
5729
+ bumpScale?: number | undefined;
4930
5730
  } | undefined;
4931
5731
  } | undefined;
4932
5732
  slots?: Record<string, string> | undefined;