@pascal-app/core 1.0.5 → 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.
- package/dist/agent-operations/__fixtures__/add-object-cases.d.ts +31 -0
- package/dist/agent-operations/__fixtures__/add-object-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/build-room-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/build-room-cases.js +27 -0
- package/dist/agent-operations/__fixtures__/cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/cases.js +19 -11
- package/dist/agent-operations/__fixtures__/design-brief-cases.d.ts +25 -2
- package/dist/agent-operations/__fixtures__/design-brief-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/design-brief-cases.js +509 -66
- package/dist/agent-operations/__fixtures__/dressing-scenes.d.ts +30 -0
- package/dist/agent-operations/__fixtures__/dressing-scenes.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/dressing-scenes.js +82 -0
- package/dist/agent-operations/__fixtures__/native-materials.d.ts +407 -9
- package/dist/agent-operations/__fixtures__/native-materials.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/notation-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/notation-cases.js +14 -0
- package/dist/agent-operations/__fixtures__/roof-bearing-cases.d.ts +7253 -4053
- package/dist/agent-operations/__fixtures__/roof-bearing-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/room-cases.d.ts +1 -0
- package/dist/agent-operations/__fixtures__/room-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/room-cases.js +57 -1
- package/dist/agent-operations/__fixtures__/room-check-scenes.d.ts +51 -0
- package/dist/agent-operations/__fixtures__/room-check-scenes.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/room-check-scenes.js +121 -0
- package/dist/agent-operations/__fixtures__/scene-check-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/scene-check-cases.js +152 -18
- package/dist/agent-operations/__fixtures__/search-assets-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/search-assets-cases.js +91 -0
- package/dist/agent-operations/__fixtures__/site-cases.d.ts +40 -1
- package/dist/agent-operations/__fixtures__/site-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/structure-cases.d.ts +3 -0
- package/dist/agent-operations/__fixtures__/structure-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/structure-cases.js +199 -18
- package/dist/agent-operations/__fixtures__/unit-cases.d.ts +6 -0
- package/dist/agent-operations/__fixtures__/unit-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/unit-cases.js +266 -0
- package/dist/agent-operations/__fixtures__/verify-scene-cases.d.ts +109 -73
- package/dist/agent-operations/__fixtures__/verify-scene-cases.d.ts.map +1 -1
- package/dist/agent-operations/add-column.d.ts.map +1 -1
- package/dist/agent-operations/add-column.js +32 -3
- package/dist/agent-operations/add-fence.d.ts.map +1 -1
- package/dist/agent-operations/add-fence.js +2 -1
- package/dist/agent-operations/add-level.d.ts.map +1 -1
- package/dist/agent-operations/add-level.js +4 -4
- package/dist/agent-operations/add-object.d.ts +32 -6
- package/dist/agent-operations/add-object.d.ts.map +1 -1
- package/dist/agent-operations/add-object.js +59 -12
- package/dist/agent-operations/add-wall.d.ts +3 -8
- package/dist/agent-operations/add-wall.d.ts.map +1 -1
- package/dist/agent-operations/add-wall.js +31 -8
- package/dist/agent-operations/apply-changes.d.ts.map +1 -1
- package/dist/agent-operations/apply-changes.js +2 -1
- package/dist/agent-operations/asset-catalog.d.ts +63 -0
- package/dist/agent-operations/asset-catalog.d.ts.map +1 -0
- package/dist/agent-operations/asset-catalog.js +182 -0
- package/dist/agent-operations/asset-views.d.ts +4 -2
- package/dist/agent-operations/asset-views.d.ts.map +1 -1
- package/dist/agent-operations/asset-views.js +1 -3
- package/dist/agent-operations/author-scene-checks.d.ts +38 -0
- package/dist/agent-operations/author-scene-checks.d.ts.map +1 -0
- package/dist/agent-operations/author-scene-checks.js +266 -0
- package/dist/agent-operations/author-scene.d.ts +54 -20
- package/dist/agent-operations/author-scene.d.ts.map +1 -1
- package/dist/agent-operations/author-scene.js +1164 -196
- package/dist/agent-operations/authored-scene-merge.d.ts.map +1 -1
- package/dist/agent-operations/authored-scene-merge.js +61 -3
- package/dist/agent-operations/batch.d.ts +1 -1
- package/dist/agent-operations/batch.d.ts.map +1 -1
- package/dist/agent-operations/batch.js +38 -39
- package/dist/agent-operations/ceiling-object-observations.d.ts.map +1 -1
- package/dist/agent-operations/ceiling-object-observations.js +5 -4
- package/dist/agent-operations/circulation-geometry.d.ts +14 -0
- package/dist/agent-operations/circulation-geometry.d.ts.map +1 -0
- package/dist/agent-operations/circulation-geometry.js +151 -0
- package/dist/agent-operations/circulation-graph.d.ts +72 -0
- package/dist/agent-operations/circulation-graph.d.ts.map +1 -0
- package/dist/agent-operations/circulation-graph.js +713 -0
- package/dist/agent-operations/circulation-non-spaces.d.ts +10 -0
- package/dist/agent-operations/circulation-non-spaces.d.ts.map +1 -0
- package/dist/agent-operations/circulation-non-spaces.js +88 -0
- package/dist/agent-operations/circulation-spaces.d.ts +5880 -0
- package/dist/agent-operations/circulation-spaces.d.ts.map +1 -0
- package/dist/agent-operations/circulation-spaces.js +368 -0
- package/dist/agent-operations/collections.d.ts.map +1 -1
- package/dist/agent-operations/collections.js +9 -7
- package/dist/agent-operations/corner-window.d.ts.map +1 -1
- package/dist/agent-operations/corner-window.js +2 -4
- package/dist/agent-operations/create-roof.d.ts.map +1 -1
- package/dist/agent-operations/create-roof.js +5 -7
- package/dist/agent-operations/create-room.d.ts +4 -1
- package/dist/agent-operations/create-room.d.ts.map +1 -1
- package/dist/agent-operations/create-room.js +7 -4
- package/dist/agent-operations/create-stair.js +2 -2
- package/dist/agent-operations/design-brief.d.ts +13 -7
- package/dist/agent-operations/design-brief.d.ts.map +1 -1
- package/dist/agent-operations/design-brief.js +172 -92
- package/dist/agent-operations/door-clearance.d.ts +68 -8
- package/dist/agent-operations/door-clearance.d.ts.map +1 -1
- package/dist/agent-operations/door-clearance.js +127 -20
- package/dist/agent-operations/dress-targets.d.ts +23 -0
- package/dist/agent-operations/dress-targets.d.ts.map +1 -0
- package/dist/agent-operations/dress-targets.js +34 -0
- package/dist/agent-operations/duplicate-node.d.ts +14 -0
- package/dist/agent-operations/duplicate-node.d.ts.map +1 -0
- package/dist/agent-operations/duplicate-node.js +173 -0
- package/dist/agent-operations/find-by-type.d.ts.map +1 -1
- package/dist/agent-operations/find-by-type.js +3 -0
- package/dist/agent-operations/furnish-room.d.ts +2 -0
- package/dist/agent-operations/furnish-room.d.ts.map +1 -1
- package/dist/agent-operations/furnish-room.js +15 -4
- package/dist/agent-operations/furniture-kind.d.ts +28 -1
- package/dist/agent-operations/furniture-kind.d.ts.map +1 -1
- package/dist/agent-operations/furniture-kind.js +105 -6
- package/dist/agent-operations/ground-reader.d.ts +10 -0
- package/dist/agent-operations/ground-reader.d.ts.map +1 -0
- package/dist/agent-operations/ground-reader.js +25 -0
- package/dist/agent-operations/index.d.ts +118 -12
- package/dist/agent-operations/index.d.ts.map +1 -1
- package/dist/agent-operations/index.js +26 -1
- package/dist/agent-operations/item-solids.d.ts +39 -0
- package/dist/agent-operations/item-solids.d.ts.map +1 -0
- package/dist/agent-operations/item-solids.js +128 -0
- package/dist/agent-operations/layout-clearance.d.ts +91 -11
- package/dist/agent-operations/layout-clearance.d.ts.map +1 -1
- package/dist/agent-operations/layout-clearance.js +280 -73
- package/dist/agent-operations/level-height-fill.d.ts.map +1 -1
- package/dist/agent-operations/level-height-fill.js +7 -1
- package/dist/agent-operations/level-reads.d.ts +5 -0
- package/dist/agent-operations/level-reads.d.ts.map +1 -1
- package/dist/agent-operations/level-reads.js +38 -2
- package/dist/agent-operations/list-levels.d.ts.map +1 -1
- package/dist/agent-operations/list-levels.js +2 -4
- package/dist/agent-operations/move-node.d.ts +12 -0
- package/dist/agent-operations/move-node.d.ts.map +1 -0
- package/dist/agent-operations/move-node.js +28 -0
- package/dist/agent-operations/move-plan.d.ts +28 -0
- package/dist/agent-operations/move-plan.d.ts.map +1 -0
- package/dist/agent-operations/move-plan.js +257 -0
- package/dist/agent-operations/node-patch.d.ts.map +1 -1
- package/dist/agent-operations/node-patch.js +15 -0
- package/dist/agent-operations/paint.d.ts +3 -1
- package/dist/agent-operations/paint.d.ts.map +1 -1
- package/dist/agent-operations/paint.js +14 -1
- package/dist/agent-operations/photo-elevation.d.ts.map +1 -1
- package/dist/agent-operations/photo-elevation.js +2 -1
- package/dist/agent-operations/place-in-room.d.ts.map +1 -1
- package/dist/agent-operations/place-in-room.js +1 -0
- package/dist/agent-operations/place-items.d.ts.map +1 -1
- package/dist/agent-operations/place-items.js +3 -4
- package/dist/agent-operations/plan-clearance.d.ts +28 -0
- package/dist/agent-operations/plan-clearance.d.ts.map +1 -0
- package/dist/agent-operations/plan-clearance.js +47 -0
- package/dist/agent-operations/plan-geometry.d.ts +2 -0
- package/dist/agent-operations/plan-geometry.d.ts.map +1 -1
- package/dist/agent-operations/plan-geometry.js +10 -0
- package/dist/agent-operations/project-files.d.ts +10 -0
- package/dist/agent-operations/project-files.d.ts.map +1 -1
- package/dist/agent-operations/reachability.d.ts +41 -0
- package/dist/agent-operations/reachability.d.ts.map +1 -0
- package/dist/agent-operations/reachability.js +199 -0
- package/dist/agent-operations/room-checks.d.ts +60 -0
- package/dist/agent-operations/room-checks.d.ts.map +1 -0
- package/dist/agent-operations/room-checks.js +226 -0
- package/dist/agent-operations/room-faces.d.ts +30 -0
- package/dist/agent-operations/room-faces.d.ts.map +1 -0
- package/dist/agent-operations/room-faces.js +31 -0
- package/dist/agent-operations/room-findings.d.ts +5 -2
- package/dist/agent-operations/room-findings.d.ts.map +1 -1
- package/dist/agent-operations/room-findings.js +30 -0
- package/dist/agent-operations/room-finishes.d.ts +87 -0
- package/dist/agent-operations/room-finishes.d.ts.map +1 -0
- package/dist/agent-operations/room-finishes.js +193 -0
- package/dist/agent-operations/room-floor-script.d.ts +3 -3
- package/dist/agent-operations/room-floor-script.js +3 -3
- package/dist/agent-operations/room-readings.d.ts +90 -0
- package/dist/agent-operations/room-readings.d.ts.map +1 -0
- package/dist/agent-operations/room-readings.js +369 -0
- package/dist/agent-operations/room-tile.d.ts +15 -0
- package/dist/agent-operations/room-tile.d.ts.map +1 -0
- package/dist/agent-operations/room-tile.js +30 -0
- package/dist/agent-operations/room-wet.d.ts +55 -0
- package/dist/agent-operations/room-wet.d.ts.map +1 -0
- package/dist/agent-operations/room-wet.js +203 -0
- package/dist/agent-operations/scene-check-policy.d.ts +5 -0
- package/dist/agent-operations/scene-check-policy.d.ts.map +1 -0
- package/dist/agent-operations/scene-check-policy.js +24 -0
- package/dist/agent-operations/scene-checkpoint.d.ts +10 -0
- package/dist/agent-operations/scene-checkpoint.d.ts.map +1 -1
- package/dist/agent-operations/scene-checkpoint.js +31 -0
- package/dist/agent-operations/scene-issue-groups.d.ts +17 -0
- package/dist/agent-operations/scene-issue-groups.d.ts.map +1 -0
- package/dist/agent-operations/scene-issue-groups.js +71 -0
- package/dist/agent-operations/scene-materials.d.ts +23 -0
- package/dist/agent-operations/scene-materials.d.ts.map +1 -1
- package/dist/agent-operations/scene-materials.js +41 -0
- package/dist/agent-operations/scene-queries.d.ts +1667 -866
- package/dist/agent-operations/scene-queries.d.ts.map +1 -1
- package/dist/agent-operations/scene-queries.js +3 -3
- package/dist/agent-operations/scene-review.d.ts.map +1 -1
- package/dist/agent-operations/scene-review.js +3 -2
- package/dist/agent-operations/scene-view.d.ts.map +1 -1
- package/dist/agent-operations/scene-view.js +91 -21
- package/dist/agent-operations/search-assets.d.ts +10 -6
- package/dist/agent-operations/search-assets.d.ts.map +1 -1
- package/dist/agent-operations/search-assets.js +37 -22
- package/dist/agent-operations/set-checkpoint.d.ts.map +1 -1
- package/dist/agent-operations/set-checkpoint.js +1 -0
- package/dist/agent-operations/set-ground-level.d.ts +1 -1
- package/dist/agent-operations/set-ground-level.d.ts.map +1 -1
- package/dist/agent-operations/set-ground-level.js +3 -14
- package/dist/agent-operations/site.js +3 -2
- package/dist/agent-operations/slab-surface-script.d.ts +25 -0
- package/dist/agent-operations/slab-surface-script.d.ts.map +1 -0
- package/dist/agent-operations/slab-surface-script.js +60 -0
- package/dist/agent-operations/stair-plan-footprint.d.ts +9 -0
- package/dist/agent-operations/stair-plan-footprint.d.ts.map +1 -0
- package/dist/agent-operations/stair-plan-footprint.js +50 -0
- package/dist/agent-operations/types.d.ts +10 -5
- package/dist/agent-operations/types.d.ts.map +1 -1
- package/dist/agent-operations/units.d.ts +26 -0
- package/dist/agent-operations/units.d.ts.map +1 -0
- package/dist/agent-operations/units.js +110 -0
- package/dist/agent-operations/unreachable-rooms-check.d.ts +17 -0
- package/dist/agent-operations/unreachable-rooms-check.d.ts.map +1 -0
- package/dist/agent-operations/unreachable-rooms-check.js +35 -0
- package/dist/agent-operations/usage-checks.d.ts +2 -0
- package/dist/agent-operations/usage-checks.d.ts.map +1 -0
- package/dist/agent-operations/usage-checks.js +12 -0
- package/dist/agent-operations/verify-scene.d.ts +8 -11
- package/dist/agent-operations/verify-scene.d.ts.map +1 -1
- package/dist/agent-operations/verify-scene.js +55 -11
- package/dist/agent-operations/wall-face-defaults.d.ts +44 -0
- package/dist/agent-operations/wall-face-defaults.d.ts.map +1 -0
- package/dist/agent-operations/wall-face-defaults.js +229 -0
- package/dist/agent-operations/wall-joins.d.ts +119 -0
- package/dist/agent-operations/wall-joins.d.ts.map +1 -0
- package/dist/agent-operations/wall-joins.js +308 -0
- package/dist/agent-operations/wall-object-observations.d.ts.map +1 -1
- package/dist/agent-operations/wall-object-observations.js +4 -6
- package/dist/agent-operations/wall-skirting.d.ts.map +1 -1
- package/dist/agent-operations/wall-skirting.js +2 -0
- package/dist/agent-operations/wall-type.d.ts +49 -0
- package/dist/agent-operations/wall-type.d.ts.map +1 -0
- package/dist/agent-operations/wall-type.js +31 -0
- package/dist/agent-operations/zone-coverage.d.ts +85 -0
- package/dist/agent-operations/zone-coverage.d.ts.map +1 -0
- package/dist/agent-operations/zone-coverage.js +208 -0
- package/dist/agent-tools/add-object.d.ts +31 -0
- package/dist/agent-tools/add-object.d.ts.map +1 -1
- package/dist/agent-tools/add-object.js +44 -7
- package/dist/agent-tools/assets.d.ts +4 -0
- package/dist/agent-tools/assets.d.ts.map +1 -1
- package/dist/agent-tools/assets.js +11 -1
- package/dist/agent-tools/author-scene.d.ts +810 -15
- package/dist/agent-tools/author-scene.d.ts.map +1 -1
- package/dist/agent-tools/author-scene.js +275 -34
- package/dist/agent-tools/batch.d.ts +1 -1
- package/dist/agent-tools/batch.d.ts.map +1 -1
- package/dist/agent-tools/batch.js +5 -1
- package/dist/agent-tools/checkpoints.js +1 -1
- package/dist/agent-tools/columns.d.ts +14 -0
- package/dist/agent-tools/columns.d.ts.map +1 -1
- package/dist/agent-tools/columns.js +14 -2
- package/dist/agent-tools/contract.d.ts +10 -0
- package/dist/agent-tools/contract.d.ts.map +1 -1
- package/dist/agent-tools/contract.js +5 -1
- package/dist/agent-tools/corner-window.d.ts +1 -0
- package/dist/agent-tools/corner-window.d.ts.map +1 -1
- package/dist/agent-tools/corner-window.js +1 -1
- package/dist/agent-tools/create-room.d.ts +85 -0
- package/dist/agent-tools/create-room.d.ts.map +1 -1
- package/dist/agent-tools/create-room.js +8 -1
- package/dist/agent-tools/design-brief.d.ts +513 -7
- package/dist/agent-tools/design-brief.d.ts.map +1 -1
- package/dist/agent-tools/design-brief.js +192 -14
- package/dist/agent-tools/designs.js +1 -1
- package/dist/agent-tools/find-by-type.js +1 -1
- package/dist/agent-tools/index.d.ts +658 -10
- package/dist/agent-tools/index.d.ts.map +1 -1
- package/dist/agent-tools/index.js +9 -1
- package/dist/agent-tools/levels.js +4 -4
- package/dist/agent-tools/move-duplicate.d.ts +65 -0
- package/dist/agent-tools/move-duplicate.d.ts.map +1 -0
- package/dist/agent-tools/move-duplicate.js +68 -0
- package/dist/agent-tools/paint.d.ts +6 -0
- package/dist/agent-tools/paint.d.ts.map +1 -1
- package/dist/agent-tools/paint.js +7 -3
- package/dist/agent-tools/photo-elevation.js +1 -1
- package/dist/agent-tools/project-files.d.ts +2 -2
- package/dist/agent-tools/project-files.d.ts.map +1 -1
- package/dist/agent-tools/project-files.js +1 -1
- package/dist/agent-tools/refusal.d.ts +9 -1
- package/dist/agent-tools/refusal.d.ts.map +1 -1
- package/dist/agent-tools/refusal.js +5 -1
- package/dist/agent-tools/roofs.js +1 -1
- package/dist/agent-tools/room-structure.d.ts +60 -0
- package/dist/agent-tools/room-structure.d.ts.map +1 -1
- package/dist/agent-tools/room-structure.js +20 -1
- package/dist/agent-tools/search-materials.d.ts +1 -0
- package/dist/agent-tools/search-materials.d.ts.map +1 -1
- package/dist/agent-tools/site.js +1 -1
- package/dist/agent-tools/stairs.js +1 -1
- package/dist/agent-tools/units.d.ts +84 -0
- package/dist/agent-tools/units.d.ts.map +1 -0
- package/dist/agent-tools/units.js +54 -0
- package/dist/agent-tools/verify-scene-usage.d.ts +44 -0
- package/dist/agent-tools/verify-scene-usage.d.ts.map +1 -0
- package/dist/agent-tools/verify-scene-usage.js +146 -0
- package/dist/agent-tools/verify-scene.d.ts +12 -1
- package/dist/agent-tools/verify-scene.d.ts.map +1 -1
- package/dist/agent-tools/verify-scene.js +183 -3
- package/dist/agent-tools/view-scene.d.ts +3 -0
- package/dist/agent-tools/view-scene.d.ts.map +1 -1
- package/dist/agent-tools/view-scene.js +4 -1
- package/dist/agent-tools/wall-openings.d.ts +121 -2
- package/dist/agent-tools/wall-openings.d.ts.map +1 -1
- package/dist/agent-tools/wall-openings.js +123 -18
- package/dist/agent-tools/walls.d.ts +30 -0
- package/dist/agent-tools/walls.d.ts.map +1 -1
- package/dist/agent-tools/walls.js +54 -2
- package/dist/building/__fixtures__/wall-opening-cases.d.ts +340 -195
- package/dist/building/__fixtures__/wall-opening-cases.d.ts.map +1 -1
- package/dist/building/__fixtures__/wall-opening-cases.js +13 -0
- package/dist/building/code-profile.d.ts +231 -0
- package/dist/building/code-profile.d.ts.map +1 -0
- package/dist/building/code-profile.js +208 -0
- package/dist/building/corner-window.d.ts +2 -2
- package/dist/building/corner-window.d.ts.map +1 -1
- package/dist/building/corner-window.js +11 -2
- package/dist/building/door-types.d.ts +1 -0
- package/dist/building/door-types.d.ts.map +1 -1
- package/dist/building/door-types.js +2 -0
- package/dist/building/floor-item-fit.d.ts.map +1 -1
- package/dist/building/floor-item-fit.js +2 -4
- package/dist/building/ground-level.d.ts +1 -3
- package/dist/building/ground-level.d.ts.map +1 -1
- package/dist/building/ground-level.js +3 -5
- package/dist/building/index.d.ts +2 -0
- package/dist/building/index.d.ts.map +1 -1
- package/dist/building/index.js +2 -0
- package/dist/building/level-duplication.d.ts +5951 -4351
- package/dist/building/level-duplication.d.ts.map +1 -1
- package/dist/building/level-insertion.d.ts +1 -1
- package/dist/building/level-wall-copy.d.ts +24 -0
- package/dist/building/level-wall-copy.d.ts.map +1 -0
- package/dist/building/level-wall-copy.js +53 -0
- package/dist/building/merge-windows.d.ts.map +1 -1
- package/dist/building/merge-windows.js +1 -0
- package/dist/building/opening-style-presets.d.ts +2 -0
- package/dist/building/opening-style-presets.d.ts.map +1 -1
- package/dist/building/opening-style-presets.js +26 -5
- package/dist/building/room-use.d.ts +26 -0
- package/dist/building/room-use.d.ts.map +1 -0
- package/dist/building/room-use.js +102 -0
- package/dist/building/wall-openings.d.ts +115 -7
- package/dist/building/wall-openings.d.ts.map +1 -1
- package/dist/building/wall-openings.js +121 -29
- package/dist/building/window-types.d.ts +1 -0
- package/dist/building/window-types.d.ts.map +1 -1
- package/dist/building/window-types.js +3 -0
- package/dist/coherence/__fixtures__/enclosure-scenes.d.ts +84 -0
- package/dist/coherence/__fixtures__/enclosure-scenes.d.ts.map +1 -0
- package/dist/coherence/__fixtures__/enclosure-scenes.js +44 -0
- package/dist/commands/structure/attached-walls.d.ts +16 -0
- package/dist/commands/structure/attached-walls.d.ts.map +1 -0
- package/dist/commands/structure/attached-walls.js +53 -0
- package/dist/commands/structure/index.d.ts +3 -0
- package/dist/commands/structure/index.d.ts.map +1 -1
- package/dist/commands/structure/index.js +3 -0
- package/dist/commands/structure/move-separators.d.ts +62 -0
- package/dist/commands/structure/move-separators.d.ts.map +1 -0
- package/dist/commands/structure/move-separators.js +346 -0
- package/dist/commands/structure/set-floor-foundation.d.ts +5 -0
- package/dist/commands/structure/set-floor-foundation.d.ts.map +1 -1
- package/dist/commands/structure/set-wall-geometry.d.ts.map +1 -1
- package/dist/commands/structure/set-wall-geometry.js +44 -11
- package/dist/commands/structure/set-zone-intent.d.ts +26 -0
- package/dist/commands/structure/set-zone-intent.d.ts.map +1 -1
- package/dist/commands/structure/set-zone-intent.js +107 -2
- package/dist/commands/structure/shared.d.ts +888 -88
- package/dist/commands/structure/shared.d.ts.map +1 -1
- package/dist/commands/structure/wall-overlap.d.ts +45 -0
- package/dist/commands/structure/wall-overlap.d.ts.map +1 -0
- package/dist/commands/structure/wall-overlap.js +289 -0
- package/dist/commands/structure/zone-wall-merge.d.ts +3326 -2370
- package/dist/commands/structure/zone-wall-merge.d.ts.map +1 -1
- package/dist/contracts/reference-discovery.d.ts +2 -2
- package/dist/contracts/reference-discovery.d.ts.map +1 -1
- package/dist/contracts/reference-discovery.js +5 -3
- package/dist/contracts/reference-inventory.d.ts.map +1 -1
- package/dist/contracts/reference-inventory.js +75 -24
- package/dist/events/bus.d.ts +15 -2
- package/dist/events/bus.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/built-in-floor-placed.d.ts +40 -0
- package/dist/hooks/spatial-grid/built-in-floor-placed.d.ts.map +1 -0
- package/dist/hooks/spatial-grid/built-in-floor-placed.js +220 -0
- package/dist/hooks/spatial-grid/floor-placed-elevation.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/floor-placed-elevation.js +13 -7
- package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts +56 -1
- package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/spatial-grid-manager.js +177 -27
- package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts +1631 -831
- package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/spatial-grid-sync.js +24 -1
- package/dist/hooks/spatial-grid/support-host-patch.js +10 -10
- package/dist/i18n/format.d.ts +41 -0
- package/dist/i18n/format.d.ts.map +1 -0
- package/dist/i18n/format.js +124 -0
- package/dist/i18n/index.d.ts +5 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +3 -0
- package/dist/i18n/registry.d.ts +78 -0
- package/dist/i18n/registry.d.ts.map +1 -0
- package/dist/i18n/registry.js +252 -0
- package/dist/i18n/use-translate.d.ts +16 -0
- package/dist/i18n/use-translate.d.ts.map +1 -0
- package/dist/i18n/use-translate.js +23 -0
- package/dist/index.d.ts +32 -16
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +31 -15
- package/dist/lib/__fixtures__/mezzanine.d.ts +6840 -4169
- package/dist/lib/__fixtures__/mezzanine.d.ts.map +1 -1
- package/dist/lib/absorb-wall-separators.d.ts +2128 -1328
- package/dist/lib/absorb-wall-separators.d.ts.map +1 -1
- package/dist/lib/beam.d.ts +137 -0
- package/dist/lib/beam.d.ts.map +1 -0
- package/dist/lib/beam.js +297 -0
- package/dist/lib/below-grade-footprints.d.ts +13 -5
- package/dist/lib/below-grade-footprints.d.ts.map +1 -1
- package/dist/lib/below-grade-footprints.js +53 -10
- package/dist/lib/build-up.d.ts +89 -0
- package/dist/lib/build-up.d.ts.map +1 -0
- package/dist/lib/build-up.js +216 -0
- package/dist/lib/corner-pair.d.ts +205 -4
- package/dist/lib/corner-pair.d.ts.map +1 -1
- package/dist/lib/deck-boards.d.ts +80 -0
- package/dist/lib/deck-boards.d.ts.map +1 -0
- package/dist/lib/deck-boards.js +184 -0
- package/dist/lib/deck-framing.d.ts +150 -0
- package/dist/lib/deck-framing.d.ts.map +1 -0
- package/dist/lib/deck-framing.js +515 -0
- package/dist/lib/deepest-drawn.d.ts +3 -6
- package/dist/lib/deepest-drawn.d.ts.map +1 -1
- package/dist/lib/deepest-drawn.js +4 -8
- package/dist/lib/door-opening.d.ts +19 -0
- package/dist/lib/door-opening.d.ts.map +1 -0
- package/dist/lib/door-opening.js +27 -0
- package/dist/lib/door-operation.d.ts +2 -0
- package/dist/lib/door-operation.d.ts.map +1 -1
- package/dist/lib/door-operation.js +4 -0
- package/dist/lib/exterior-wall-loops.d.ts.map +1 -1
- package/dist/lib/exterior-wall-loops.js +2 -1
- package/dist/lib/finish-script.d.ts +5 -5
- package/dist/lib/finish-script.d.ts.map +1 -1
- package/dist/lib/finish-script.js +12 -5
- package/dist/lib/floor-footprint-name.d.ts +17 -0
- package/dist/lib/floor-footprint-name.d.ts.map +1 -1
- package/dist/lib/floor-footprint-name.js +17 -4
- package/dist/lib/floor-intent-changes.d.ts.map +1 -1
- package/dist/lib/floor-intent-changes.js +60 -35
- package/dist/lib/floor-opening-footprints.d.ts +1 -1
- package/dist/lib/floor-opening-footprints.d.ts.map +1 -1
- package/dist/lib/floor-opening-footprints.js +10 -4
- package/dist/lib/floor-plate-paint.d.ts +2 -0
- package/dist/lib/floor-plate-paint.d.ts.map +1 -1
- package/dist/lib/floor-plate-paint.js +12 -0
- package/dist/lib/floor-plates.d.ts +250 -0
- package/dist/lib/floor-plates.d.ts.map +1 -1
- package/dist/lib/floor-plates.js +43 -4
- package/dist/lib/floor-script.d.ts +35 -6
- package/dist/lib/floor-script.d.ts.map +1 -1
- package/dist/lib/floor-script.js +96 -16
- package/dist/lib/foundation-construction.d.ts +4 -13
- package/dist/lib/foundation-construction.d.ts.map +1 -1
- package/dist/lib/foundation-construction.js +4 -14
- package/dist/lib/foundation-standard.d.ts +2 -3
- package/dist/lib/foundation-standard.d.ts.map +1 -1
- package/dist/lib/foundation-standard.js +2 -3
- package/dist/lib/foundation-wall.d.ts +1 -2
- package/dist/lib/foundation-wall.d.ts.map +1 -1
- package/dist/lib/foundation-wall.js +1 -2
- package/dist/lib/framing-post.d.ts +91 -0
- package/dist/lib/framing-post.d.ts.map +1 -0
- package/dist/lib/framing-post.js +174 -0
- package/dist/lib/geometry-script-node.d.ts +11 -0
- package/dist/lib/geometry-script-node.d.ts.map +1 -1
- package/dist/lib/geometry-script-node.js +35 -0
- package/dist/lib/grade-standing.d.ts +16 -2
- package/dist/lib/grade-standing.d.ts.map +1 -1
- package/dist/lib/grade-standing.js +129 -9
- package/dist/lib/ground-seat.d.ts +2 -22
- package/dist/lib/ground-seat.d.ts.map +1 -1
- package/dist/lib/ground-seat.js +2 -17
- package/dist/lib/ground-window.d.ts +2 -1
- package/dist/lib/ground-window.d.ts.map +1 -1
- package/dist/lib/ground-window.js +5 -2
- package/dist/lib/level-footprints.d.ts +2 -0
- package/dist/lib/level-footprints.d.ts.map +1 -1
- package/dist/lib/level-footprints.js +7 -0
- package/dist/lib/opening-casing.d.ts +67 -0
- package/dist/lib/opening-casing.d.ts.map +1 -0
- package/dist/lib/opening-casing.js +131 -0
- package/dist/lib/opening-exterior-face.d.ts +6 -0
- package/dist/lib/opening-exterior-face.d.ts.map +1 -0
- package/dist/lib/opening-exterior-face.js +15 -0
- package/dist/lib/opening-floor-datum.d.ts +11 -5
- package/dist/lib/opening-floor-datum.d.ts.map +1 -1
- package/dist/lib/opening-floor-datum.js +38 -6
- package/dist/lib/opening-frame-depth.d.ts +18 -0
- package/dist/lib/opening-frame-depth.d.ts.map +1 -0
- package/dist/lib/opening-frame-depth.js +22 -0
- package/dist/lib/outdoor-room.d.ts +32 -0
- package/dist/lib/outdoor-room.d.ts.map +1 -0
- package/dist/lib/outdoor-room.js +66 -0
- package/dist/lib/plate-surface.d.ts +8 -0
- package/dist/lib/plate-surface.d.ts.map +1 -1
- package/dist/lib/plate-surface.js +53 -3
- package/dist/lib/porch-framing-sync.d.ts +46 -0
- package/dist/lib/porch-framing-sync.d.ts.map +1 -0
- package/dist/lib/porch-framing-sync.js +206 -0
- package/dist/lib/porch-framing.d.ts +44 -0
- package/dist/lib/porch-framing.d.ts.map +1 -0
- package/dist/lib/porch-framing.js +159 -0
- package/dist/lib/railing-rooms.d.ts +13 -0
- package/dist/lib/railing-rooms.d.ts.map +1 -0
- package/dist/lib/railing-rooms.js +37 -0
- package/dist/lib/roof-eave.d.ts +135 -0
- package/dist/lib/roof-eave.d.ts.map +1 -0
- package/dist/lib/roof-eave.js +186 -0
- package/dist/lib/room-floor-plate.d.ts +3 -1
- package/dist/lib/room-floor-plate.d.ts.map +1 -1
- package/dist/lib/room-floor-plate.js +7 -0
- package/dist/lib/space-detection.d.ts +13 -0
- package/dist/lib/space-detection.d.ts.map +1 -1
- package/dist/lib/space-detection.js +112 -24
- package/dist/lib/structure-kernel.d.ts +22 -9
- package/dist/lib/structure-kernel.d.ts.map +1 -1
- package/dist/lib/structure-kernel.js +146 -28
- package/dist/lib/structure-reconcile.d.ts +1 -1
- package/dist/lib/structure-reconcile.d.ts.map +1 -1
- package/dist/lib/structure-reconcile.js +7 -4
- package/dist/lib/surface-intent.d.ts +10 -0
- package/dist/lib/surface-intent.d.ts.map +1 -0
- package/dist/lib/surface-intent.js +18 -0
- package/dist/lib/terrain-source.d.ts.map +1 -1
- package/dist/lib/terrain-source.js +2 -1
- package/dist/lib/wall-face-script.d.ts.map +1 -1
- package/dist/lib/wall-face-script.js +5 -2
- package/dist/material-kinds.d.ts +1 -1
- package/dist/material-kinds.d.ts.map +1 -1
- package/dist/material-kinds.js +1 -0
- package/dist/material-library.d.ts +15 -0
- package/dist/material-library.d.ts.map +1 -1
- package/dist/material-library.js +458 -59
- package/dist/node-slots/door.d.ts +3 -4
- package/dist/node-slots/door.d.ts.map +1 -1
- package/dist/node-slots/door.js +4 -3
- package/dist/node-slots/wall.d.ts.map +1 -1
- package/dist/node-slots/wall.js +21 -3
- package/dist/node-slots/window.d.ts +2 -2
- package/dist/node-slots/window.d.ts.map +1 -1
- package/dist/node-slots/window.js +6 -1
- package/dist/procedural-items/design.d.ts +8 -0
- package/dist/procedural-items/design.d.ts.map +1 -1
- package/dist/procedural-items/design.js +169 -21
- package/dist/procedural-items/motion-controller.d.ts +2 -0
- package/dist/procedural-items/motion-controller.d.ts.map +1 -1
- package/dist/procedural-items/motion-controller.js +2 -1
- package/dist/registry/index.d.ts +2 -2
- package/dist/registry/index.d.ts.map +1 -1
- package/dist/registry/index.js +1 -1
- package/dist/registry/mechanism.d.ts +4 -1
- package/dist/registry/mechanism.d.ts.map +1 -1
- package/dist/registry/mechanism.js +10 -0
- package/dist/registry/types.d.ts +65 -23
- package/dist/registry/types.d.ts.map +1 -1
- package/dist/runtime/__fixtures__/live-scene.d.ts +14 -0
- package/dist/runtime/__fixtures__/live-scene.d.ts.map +1 -0
- package/dist/runtime/__fixtures__/live-scene.js +64 -0
- package/dist/runtime/apply.d.ts +42 -0
- package/dist/runtime/apply.d.ts.map +1 -0
- package/dist/runtime/apply.js +274 -0
- package/dist/runtime/dependencies.d.ts +97 -0
- package/dist/runtime/dependencies.d.ts.map +1 -0
- package/dist/runtime/dependencies.js +42 -0
- package/dist/runtime/ids.d.ts +11 -0
- package/dist/runtime/ids.d.ts.map +1 -0
- package/dist/runtime/ids.js +80 -0
- package/dist/runtime/index.d.ts +14 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +11 -0
- package/dist/runtime/node-queries.d.ts +16 -0
- package/dist/runtime/node-queries.d.ts.map +1 -0
- package/dist/runtime/node-queries.js +30 -0
- package/dist/runtime/patch.d.ts +26 -0
- package/dist/runtime/patch.d.ts.map +1 -0
- package/dist/runtime/patch.js +165 -0
- package/dist/runtime/reader.d.ts +104 -0
- package/dist/runtime/reader.d.ts.map +1 -0
- package/dist/runtime/reader.js +455 -0
- package/dist/runtime/scene-runtime.d.ts +112 -0
- package/dist/runtime/scene-runtime.d.ts.map +1 -0
- package/dist/runtime/scene-runtime.js +302 -0
- package/dist/schema/__fixtures__/node-fixtures.d.ts.map +1 -1
- package/dist/schema/__fixtures__/node-fixtures.js +1 -0
- package/dist/schema/assembly.d.ts +3 -0
- package/dist/schema/assembly.d.ts.map +1 -1
- package/dist/schema/assembly.js +13 -0
- package/dist/schema/asset-url.d.ts +37 -2
- package/dist/schema/asset-url.d.ts.map +1 -1
- package/dist/schema/asset-url.js +80 -11
- package/dist/schema/base.d.ts +8 -0
- package/dist/schema/base.d.ts.map +1 -1
- package/dist/schema/base.js +19 -1
- package/dist/schema/build-up.d.ts +247 -0
- package/dist/schema/build-up.d.ts.map +1 -0
- package/dist/schema/build-up.js +83 -0
- package/dist/schema/geometry-source.d.ts +80 -0
- package/dist/schema/geometry-source.d.ts.map +1 -1
- package/dist/schema/geometry-source.js +38 -0
- package/dist/schema/index.d.ts +12 -7
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +12 -6
- package/dist/schema/material.d.ts +5 -0
- package/dist/schema/material.d.ts.map +1 -1
- package/dist/schema/material.js +6 -0
- package/dist/schema/nodes/beam.d.ts +264 -0
- package/dist/schema/nodes/beam.d.ts.map +1 -0
- package/dist/schema/nodes/beam.js +139 -0
- package/dist/schema/nodes/box-vent.d.ts +5 -0
- package/dist/schema/nodes/box-vent.d.ts.map +1 -1
- package/dist/schema/nodes/cabinet.d.ts +10 -0
- package/dist/schema/nodes/cabinet.d.ts.map +1 -1
- package/dist/schema/nodes/ceiling.d.ts +48 -0
- package/dist/schema/nodes/ceiling.d.ts.map +1 -1
- package/dist/schema/nodes/ceiling.js +5 -0
- package/dist/schema/nodes/chimney.d.ts +10 -0
- package/dist/schema/nodes/chimney.d.ts.map +1 -1
- package/dist/schema/nodes/column.d.ts +42 -0
- package/dist/schema/nodes/column.d.ts.map +1 -1
- package/dist/schema/nodes/column.js +11 -1
- package/dist/schema/nodes/cupola.d.ts +5 -0
- package/dist/schema/nodes/cupola.d.ts.map +1 -1
- package/dist/schema/nodes/door.d.ts +54 -3
- package/dist/schema/nodes/door.d.ts.map +1 -1
- package/dist/schema/nodes/door.js +41 -7
- package/dist/schema/nodes/dormer.d.ts +20 -0
- package/dist/schema/nodes/dormer.d.ts.map +1 -1
- package/dist/schema/nodes/downspout.d.ts +5 -0
- package/dist/schema/nodes/downspout.d.ts.map +1 -1
- package/dist/schema/nodes/elevator.d.ts +5 -0
- package/dist/schema/nodes/elevator.d.ts.map +1 -1
- package/dist/schema/nodes/eyebrow-vent.d.ts +5 -0
- package/dist/schema/nodes/eyebrow-vent.d.ts.map +1 -1
- package/dist/schema/nodes/fence.d.ts +5 -0
- package/dist/schema/nodes/fence.d.ts.map +1 -1
- package/dist/schema/nodes/guide.d.ts +14 -0
- package/dist/schema/nodes/guide.d.ts.map +1 -1
- package/dist/schema/nodes/guide.js +2 -0
- package/dist/schema/nodes/gutter.d.ts +5 -0
- package/dist/schema/nodes/gutter.d.ts.map +1 -1
- package/dist/schema/nodes/item.d.ts +71 -0
- package/dist/schema/nodes/item.d.ts.map +1 -1
- package/dist/schema/nodes/item.js +5 -1
- package/dist/schema/nodes/level.d.ts +1 -1
- package/dist/schema/nodes/level.d.ts.map +1 -1
- package/dist/schema/nodes/opening-types.d.ts +13 -0
- package/dist/schema/nodes/opening-types.d.ts.map +1 -1
- package/dist/schema/nodes/opening-types.js +8 -1
- package/dist/schema/nodes/railing-wall.d.ts +112 -0
- package/dist/schema/nodes/railing-wall.d.ts.map +1 -0
- package/dist/schema/nodes/railing-wall.js +160 -0
- package/dist/schema/nodes/ridge-vent.d.ts +5 -0
- package/dist/schema/nodes/ridge-vent.d.ts.map +1 -1
- package/dist/schema/nodes/roof-segment.d.ts +224 -1
- package/dist/schema/nodes/roof-segment.d.ts.map +1 -1
- package/dist/schema/nodes/roof-segment.js +57 -10
- package/dist/schema/nodes/roof-types.d.ts +11 -0
- package/dist/schema/nodes/roof-types.d.ts.map +1 -1
- package/dist/schema/nodes/roof-types.js +6 -0
- package/dist/schema/nodes/roof.d.ts +60 -0
- package/dist/schema/nodes/roof.d.ts.map +1 -1
- package/dist/schema/nodes/roof.js +4 -0
- package/dist/schema/nodes/shelf.d.ts +5 -0
- package/dist/schema/nodes/shelf.d.ts.map +1 -1
- package/dist/schema/nodes/site.d.ts +80 -0
- package/dist/schema/nodes/site.d.ts.map +1 -1
- package/dist/schema/nodes/site.js +7 -0
- package/dist/schema/nodes/skylight.d.ts +10 -0
- package/dist/schema/nodes/skylight.d.ts.map +1 -1
- package/dist/schema/nodes/slab.d.ts +137 -0
- package/dist/schema/nodes/slab.d.ts.map +1 -1
- package/dist/schema/nodes/slab.js +3 -0
- package/dist/schema/nodes/solar-panel.d.ts +10 -0
- package/dist/schema/nodes/solar-panel.d.ts.map +1 -1
- package/dist/schema/nodes/stair-segment.d.ts +5 -0
- package/dist/schema/nodes/stair-segment.d.ts.map +1 -1
- package/dist/schema/nodes/stair-structure.d.ts +69 -0
- package/dist/schema/nodes/stair-structure.d.ts.map +1 -0
- package/dist/schema/nodes/stair-structure.js +39 -0
- package/dist/schema/nodes/stair.d.ts +46 -0
- package/dist/schema/nodes/stair.d.ts.map +1 -1
- package/dist/schema/nodes/stair.js +3 -0
- package/dist/schema/nodes/turbine-vent.d.ts +5 -0
- package/dist/schema/nodes/turbine-vent.d.ts.map +1 -1
- package/dist/schema/nodes/wall.d.ts +135 -2
- package/dist/schema/nodes/wall.d.ts.map +1 -1
- package/dist/schema/nodes/wall.js +42 -6
- package/dist/schema/nodes/window.d.ts +66 -1
- package/dist/schema/nodes/window.d.ts.map +1 -1
- package/dist/schema/nodes/window.js +50 -5
- package/dist/schema/nodes/zone.d.ts +68 -0
- package/dist/schema/nodes/zone.d.ts.map +1 -1
- package/dist/schema/nodes/zone.js +32 -0
- package/dist/schema/scene-material.d.ts +5 -0
- package/dist/schema/scene-material.d.ts.map +1 -1
- package/dist/schema/types.d.ts +1079 -4
- package/dist/schema/types.d.ts.map +1 -1
- package/dist/schema/types.js +2 -0
- package/dist/schema/wall-type.d.ts +95 -0
- package/dist/schema/wall-type.d.ts.map +1 -0
- package/dist/schema/wall-type.js +32 -0
- package/dist/services/roof-bearing.d.ts.map +1 -1
- package/dist/services/roof-bearing.js +6 -3
- package/dist/services/roof-level.d.ts.map +1 -1
- package/dist/services/roof-level.js +4 -3
- package/dist/services/roof-move.d.ts.map +1 -1
- package/dist/services/roof-move.js +13 -7
- package/dist/services/storey.d.ts.map +1 -1
- package/dist/services/storey.js +13 -8
- package/dist/spatial/usage-field/beds.d.ts +51 -0
- package/dist/spatial/usage-field/beds.d.ts.map +1 -0
- package/dist/spatial/usage-field/beds.js +346 -0
- package/dist/spatial/usage-field/blocked.d.ts +28 -0
- package/dist/spatial/usage-field/blocked.d.ts.map +1 -0
- package/dist/spatial/usage-field/blocked.js +185 -0
- package/dist/spatial/usage-field/boxes.d.ts +17 -0
- package/dist/spatial/usage-field/boxes.d.ts.map +1 -0
- package/dist/spatial/usage-field/boxes.js +82 -0
- package/dist/spatial/usage-field/catalogue-shapes.d.ts +3 -0
- package/dist/spatial/usage-field/catalogue-shapes.d.ts.map +1 -0
- package/dist/spatial/usage-field/catalogue-shapes.js +257 -0
- package/dist/spatial/usage-field/catalogue.d.ts +6 -0
- package/dist/spatial/usage-field/catalogue.d.ts.map +1 -0
- package/dist/spatial/usage-field/catalogue.js +11 -0
- package/dist/spatial/usage-field/clash.d.ts +40 -0
- package/dist/spatial/usage-field/clash.d.ts.map +1 -0
- package/dist/spatial/usage-field/clash.js +187 -0
- package/dist/spatial/usage-field/door-stairs.d.ts +18 -0
- package/dist/spatial/usage-field/door-stairs.d.ts.map +1 -0
- package/dist/spatial/usage-field/door-stairs.js +129 -0
- package/dist/spatial/usage-field/entry-way.d.ts +14 -0
- package/dist/spatial/usage-field/entry-way.d.ts.map +1 -0
- package/dist/spatial/usage-field/entry-way.js +219 -0
- package/dist/spatial/usage-field/fences.d.ts +18 -0
- package/dist/spatial/usage-field/fences.d.ts.map +1 -0
- package/dist/spatial/usage-field/fences.js +253 -0
- package/dist/spatial/usage-field/field.d.ts +44 -0
- package/dist/spatial/usage-field/field.d.ts.map +1 -0
- package/dist/spatial/usage-field/field.js +145 -0
- package/dist/spatial/usage-field/findings.d.ts +76 -0
- package/dist/spatial/usage-field/findings.d.ts.map +1 -0
- package/dist/spatial/usage-field/findings.js +252 -0
- package/dist/spatial/usage-field/fixtures.d.ts +18 -0
- package/dist/spatial/usage-field/fixtures.d.ts.map +1 -0
- package/dist/spatial/usage-field/fixtures.js +160 -0
- package/dist/spatial/usage-field/flag.d.ts +10 -0
- package/dist/spatial/usage-field/flag.d.ts.map +1 -0
- package/dist/spatial/usage-field/flag.js +12 -0
- package/dist/spatial/usage-field/floors.d.ts +13 -0
- package/dist/spatial/usage-field/floors.d.ts.map +1 -0
- package/dist/spatial/usage-field/floors.js +36 -0
- package/dist/spatial/usage-field/index.d.ts +7 -0
- package/dist/spatial/usage-field/index.d.ts.map +1 -0
- package/dist/spatial/usage-field/index.js +5 -0
- package/dist/spatial/usage-field/items.d.ts +38 -0
- package/dist/spatial/usage-field/items.d.ts.map +1 -0
- package/dist/spatial/usage-field/items.js +261 -0
- package/dist/spatial/usage-field/labels.d.ts +8 -0
- package/dist/spatial/usage-field/labels.d.ts.map +1 -0
- package/dist/spatial/usage-field/labels.js +14 -0
- package/dist/spatial/usage-field/level-field.d.ts +47 -0
- package/dist/spatial/usage-field/level-field.d.ts.map +1 -0
- package/dist/spatial/usage-field/level-field.js +96 -0
- package/dist/spatial/usage-field/measure.d.ts +324 -0
- package/dist/spatial/usage-field/measure.d.ts.map +1 -0
- package/dist/spatial/usage-field/measure.js +458 -0
- package/dist/spatial/usage-field/obstacles.d.ts +63 -0
- package/dist/spatial/usage-field/obstacles.d.ts.map +1 -0
- package/dist/spatial/usage-field/obstacles.js +215 -0
- package/dist/spatial/usage-field/openings.d.ts +12 -0
- package/dist/spatial/usage-field/openings.d.ts.map +1 -0
- package/dist/spatial/usage-field/openings.js +162 -0
- package/dist/spatial/usage-field/path.d.ts +48 -0
- package/dist/spatial/usage-field/path.d.ts.map +1 -0
- package/dist/spatial/usage-field/path.js +354 -0
- package/dist/spatial/usage-field/pieces.d.ts +27 -0
- package/dist/spatial/usage-field/pieces.d.ts.map +1 -0
- package/dist/spatial/usage-field/pieces.js +89 -0
- package/dist/spatial/usage-field/shapes.d.ts +18 -0
- package/dist/spatial/usage-field/shapes.d.ts.map +1 -0
- package/dist/spatial/usage-field/shapes.js +92 -0
- package/dist/spatial/usage-field/stairs.d.ts +23 -0
- package/dist/spatial/usage-field/stairs.d.ts.map +1 -0
- package/dist/spatial/usage-field/stairs.js +163 -0
- package/dist/spatial/usage-field/support.d.ts +24 -0
- package/dist/spatial/usage-field/support.d.ts.map +1 -0
- package/dist/spatial/usage-field/support.js +46 -0
- package/dist/spatial/usage-field/swings.d.ts +846 -0
- package/dist/spatial/usage-field/swings.d.ts.map +1 -0
- package/dist/spatial/usage-field/swings.js +427 -0
- package/dist/spatial/usage-field/types.d.ts +65 -0
- package/dist/spatial/usage-field/types.d.ts.map +1 -0
- package/dist/spatial/usage-field/types.js +1 -0
- package/dist/spatial/usage-field/walls.d.ts +1057 -0
- package/dist/spatial/usage-field/walls.d.ts.map +1 -0
- package/dist/spatial/usage-field/walls.js +166 -0
- package/dist/spatial/usage-field/way-in.d.ts +26 -0
- package/dist/spatial/usage-field/way-in.d.ts.map +1 -0
- package/dist/spatial/usage-field/way-in.js +113 -0
- package/dist/store/actions/node-actions.d.ts +2124 -1322
- package/dist/store/actions/node-actions.d.ts.map +1 -1
- package/dist/store/actions/node-actions.js +42 -16
- package/dist/store/derived-node-guard.d.ts +10 -2
- package/dist/store/derived-node-guard.d.ts.map +1 -1
- package/dist/store/derived-node-guard.js +31 -11
- package/dist/store/document-settling.d.ts +9 -0
- package/dist/store/document-settling.d.ts.map +1 -0
- package/dist/store/document-settling.js +22 -0
- package/dist/store/history-control.d.ts +19 -10
- package/dist/store/history-control.d.ts.map +1 -1
- package/dist/store/history-control.js +176 -127
- package/dist/store/history-drafts.d.ts.map +1 -1
- package/dist/store/history-drafts.js +21 -17
- package/dist/store/live-previews.d.ts +9 -0
- package/dist/store/live-previews.d.ts.map +1 -0
- package/dist/store/live-previews.js +19 -0
- package/dist/store/scene-annotations.d.ts +6751 -5151
- package/dist/store/scene-annotations.d.ts.map +1 -1
- package/dist/store/scene-environment.d.ts +33 -0
- package/dist/store/scene-environment.d.ts.map +1 -0
- package/dist/store/scene-environment.js +54 -0
- package/dist/store/scene-hydration.d.ts.map +1 -1
- package/dist/store/scene-hydration.js +41 -30
- package/dist/store/use-interactive.d.ts +9 -3
- package/dist/store/use-interactive.d.ts.map +1 -1
- package/dist/store/use-interactive.js +43 -11
- package/dist/store/use-live-node-overrides.d.ts.map +1 -1
- package/dist/store/use-live-node-overrides.js +3 -0
- package/dist/store/use-scene.d.ts +25 -0
- package/dist/store/use-scene.d.ts.map +1 -1
- package/dist/store/use-scene.js +408 -336
- package/dist/systems/document-reconcile.d.ts +40 -0
- package/dist/systems/document-reconcile.d.ts.map +1 -0
- package/dist/systems/document-reconcile.js +159 -0
- package/dist/systems/elevator/elevator-opening-system.d.ts.map +1 -1
- package/dist/systems/elevator/elevator-opening-system.js +9 -24
- package/dist/systems/fence/guard-layout.d.ts +69 -0
- package/dist/systems/fence/guard-layout.d.ts.map +1 -0
- package/dist/systems/fence/guard-layout.js +194 -0
- package/dist/systems/owned-floor-openings.d.ts +13 -1
- package/dist/systems/owned-floor-openings.d.ts.map +1 -1
- package/dist/systems/owned-floor-openings.js +58 -2
- package/dist/systems/reconcile-owned-floor-openings.d.ts +3 -1
- package/dist/systems/reconcile-owned-floor-openings.d.ts.map +1 -1
- package/dist/systems/reconcile-owned-floor-openings.js +4 -4
- package/dist/systems/roof/roof-elevation-system.d.ts.map +1 -1
- package/dist/systems/roof/roof-elevation-system.js +8 -26
- package/dist/systems/roof/roof-elevation.d.ts +16 -1
- package/dist/systems/roof/roof-elevation.d.ts.map +1 -1
- package/dist/systems/roof/roof-elevation.js +85 -4
- package/dist/systems/roof/roof-footprint.d.ts +42 -1
- package/dist/systems/roof/roof-footprint.d.ts.map +1 -1
- package/dist/systems/roof/roof-footprint.js +160 -4
- package/dist/systems/slab/__fixtures__/floor-step.d.ts +3163 -1934
- package/dist/systems/slab/__fixtures__/floor-step.d.ts.map +1 -1
- package/dist/systems/slab/__fixtures__/raised-room.d.ts +2495 -1249
- package/dist/systems/slab/__fixtures__/raised-room.d.ts.map +1 -1
- package/dist/systems/stair/stair-clearance.d.ts +7 -0
- package/dist/systems/stair/stair-clearance.d.ts.map +1 -1
- package/dist/systems/stair/stair-clearance.js +31 -11
- package/dist/systems/stair/stair-construction.d.ts +8 -3
- package/dist/systems/stair/stair-construction.d.ts.map +1 -1
- package/dist/systems/stair/stair-construction.js +55 -4
- package/dist/systems/stair/stair-opening-preview.d.ts +889 -89
- package/dist/systems/stair/stair-opening-preview.d.ts.map +1 -1
- package/dist/systems/stair/stair-opening-system.d.ts.map +1 -1
- package/dist/systems/stair/stair-opening-system.js +18 -34
- package/dist/systems/stair/stair-presets.d.ts +36 -0
- package/dist/systems/stair/stair-presets.d.ts.map +1 -1
- package/dist/systems/stair/stair-rise-query.d.ts.map +1 -1
- package/dist/systems/stair/stair-rise-query.js +3 -2
- package/dist/systems/stair/stair-rise.d.ts.map +1 -1
- package/dist/systems/stair/stair-rise.js +6 -0
- package/dist/systems/stair/stair-sizing.d.ts +42 -11
- package/dist/systems/stair/stair-sizing.d.ts.map +1 -1
- package/dist/systems/stair/stair-sizing.js +10 -1
- package/dist/systems/stair/stair-structure.d.ts +277 -0
- package/dist/systems/stair/stair-structure.d.ts.map +1 -0
- package/dist/systems/stair/stair-structure.js +496 -0
- package/dist/systems/wall/wall-assembly.d.ts +84 -6
- package/dist/systems/wall/wall-assembly.d.ts.map +1 -1
- package/dist/systems/wall/wall-assembly.js +204 -5
- package/dist/systems/wall/wall-finish.d.ts +38 -2
- package/dist/systems/wall/wall-finish.d.ts.map +1 -1
- package/dist/systems/wall/wall-finish.js +70 -2
- package/dist/systems/wall/wall-footprint.js +2 -2
- package/dist/systems/wall/wall-merge.d.ts.map +1 -1
- package/dist/systems/wall/wall-merge.js +28 -7
- package/dist/systems/wall/wall-mitering.d.ts +1 -0
- package/dist/systems/wall/wall-mitering.d.ts.map +1 -1
- package/dist/systems/wall/wall-mitering.js +152 -52
- package/dist/systems/wall/wall-move.d.ts +23 -6
- package/dist/systems/wall/wall-move.d.ts.map +1 -1
- package/dist/systems/wall/wall-move.js +65 -0
- package/dist/systems/wall/wall-top.d.ts +2 -2
- package/dist/systems/wall/wall-top.d.ts.map +1 -1
- package/dist/systems/wall/wall-top.js +6 -1
- package/dist/systems/wall/wall-topology.d.ts +32 -1
- package/dist/systems/wall/wall-topology.d.ts.map +1 -1
- package/dist/systems/wall/wall-topology.js +118 -10
- package/dist/systems/wall/wall-trim-profiles.d.ts +12 -0
- package/dist/systems/wall/wall-trim-profiles.d.ts.map +1 -0
- package/dist/systems/wall/wall-trim-profiles.js +191 -0
- package/dist/utils/ensure-scene-openings.d.ts +6523 -4923
- package/dist/utils/ensure-scene-openings.d.ts.map +1 -1
- package/dist/utils/floor-piece-adoption.d.ts +5 -0
- package/dist/utils/floor-piece-adoption.d.ts.map +1 -1
- package/dist/utils/floor-plate-migration.d.ts +1930 -1130
- package/dist/utils/floor-plate-migration.d.ts.map +1 -1
- package/dist/utils/owned-floor-opening-migration.d.ts +888 -88
- package/dist/utils/owned-floor-opening-migration.d.ts.map +1 -1
- package/dist/utils/reconcile-structure-on-load.d.ts +1930 -1130
- package/dist/utils/reconcile-structure-on-load.d.ts.map +1 -1
- package/dist/utils/structure-id.d.ts.map +1 -1
- package/dist/utils/structure-id.js +4 -0
- package/package.json +22 -5
- package/dist/lib/generic-foundation.d.ts +0 -40
- package/dist/lib/generic-foundation.d.ts.map +0 -1
- package/dist/lib/generic-foundation.js +0 -200
|
@@ -95,11 +95,24 @@ export const WALL_OPENING_REFUSALS = [
|
|
|
95
95
|
'position_required',
|
|
96
96
|
'conflicting_position',
|
|
97
97
|
'wall_too_short',
|
|
98
|
+
'wall_too_low',
|
|
98
99
|
'opening_overlap',
|
|
99
100
|
'style_needs_fixed_window',
|
|
100
101
|
];
|
|
101
102
|
const { main, short, exact, busy, curved, storey, shelved, wallShelf, levelId, existingDoor, outFront, outBack, } = OPENING_SCENE;
|
|
102
103
|
export const WALL_OPENING_CASES = [
|
|
104
|
+
{
|
|
105
|
+
name: 'an entry transom above the wall top is refused, even with force',
|
|
106
|
+
tool: 'add_door',
|
|
107
|
+
input: { wallId: OPENING_SCENE.main, t: 0.5, transomHeight: 0.5, force: true },
|
|
108
|
+
expect: { refusal: 'wall_too_low', mentions: ['2.50 m', '2.60 m'] },
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
name: 'an entry transom above a plane-bound wall ceiling is refused',
|
|
112
|
+
tool: 'add_door',
|
|
113
|
+
input: { wallId: OPENING_SCENE.storey, t: 0.5, transomHeight: 0.8 },
|
|
114
|
+
expect: { refusal: 'wall_too_low', mentions: ['2.80 m', '2.90 m'] },
|
|
115
|
+
},
|
|
103
116
|
// Which way it faces. A door's swing and a garage door's track run behind its facing, so a door
|
|
104
117
|
// on an outside wall faces out whichever way the wall was drawn (a garage door's track once ran
|
|
105
118
|
// on the street). An inside wall keeps the wall's front.
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The thresholds a building code sets, one table, every row with its unit, its citation and whether the
|
|
3
|
+
* text behind it was read. A check that applies a code reads its numbers here, never from a literal.
|
|
4
|
+
*
|
|
5
|
+
* Which code applies is the project's to say: `site.metadata.codeProfile`. A scene that does not say has
|
|
6
|
+
* no jurisdiction, and a code-specific check then reports information that names the code it used, never
|
|
7
|
+
* a warning (the listing houses are Australian designs; the US IRC is not what they were drawn to). These are usage indicators, not a compliance check.
|
|
8
|
+
*/
|
|
9
|
+
export declare const CODE_PROFILE_IDS: readonly ['irc-2021'];
|
|
10
|
+
export type CodeProfileId = (typeof CODE_PROFILE_IDS)[number];
|
|
11
|
+
/** The text the number was read in (a state's adoption of the model code, or UpCodes), or only a guide, a forum or another checker's constant. */
|
|
12
|
+
export type ThresholdSource = 'code text' | 'secondary source';
|
|
13
|
+
/**
|
|
14
|
+
* When a row applies, for a rule that is not for every case. A row without it applies wherever the check that
|
|
15
|
+
* reads it looks; a check that reads a row with it evaluates it. `every-exterior-door` is a landing at each
|
|
16
|
+
* exterior door; `{ dropOverM, risersOver }` is a doorway whose sill opens onto a stairway or ramp with a
|
|
17
|
+
* change in level of more than that many metres or risers (either is enough: the text reads "greater than
|
|
18
|
+
* 3 risers or 570 mm").
|
|
19
|
+
*/
|
|
20
|
+
export type Applicability = 'every-exterior-door' | {
|
|
21
|
+
dropOverM: number;
|
|
22
|
+
risersOver: number;
|
|
23
|
+
};
|
|
24
|
+
export type Threshold = {
|
|
25
|
+
value: number;
|
|
26
|
+
unit: 'm' | 'm2' | 'ratio';
|
|
27
|
+
/** The section as a finding names it. */
|
|
28
|
+
section: string;
|
|
29
|
+
/** The section and, where it matters, the edition and where it was read. */
|
|
30
|
+
cite: string;
|
|
31
|
+
appliesWhen?: Applicability;
|
|
32
|
+
source: ThresholdSource;
|
|
33
|
+
};
|
|
34
|
+
/** The US International Residential Code, 2021. */
|
|
35
|
+
export declare const IRC_2021: {
|
|
36
|
+
readonly stairWidth: {
|
|
37
|
+
readonly value: number;
|
|
38
|
+
readonly unit: 'm';
|
|
39
|
+
readonly section: 'IRC R311.7.1';
|
|
40
|
+
readonly cite: "IRC R311.7.1, stairway clear width above the handrail (read in the Minnesota (2020) and Colorado (2021) residential codes)";
|
|
41
|
+
readonly source: 'code text';
|
|
42
|
+
};
|
|
43
|
+
readonly handrailProjection: {
|
|
44
|
+
readonly value: number;
|
|
45
|
+
readonly unit: 'm';
|
|
46
|
+
readonly section: 'IRC R311.7.1';
|
|
47
|
+
readonly cite: "IRC R311.7.1, a handrail projects at most this far into the stairway (read in the Minnesota (2020) and Colorado (2021) residential codes)";
|
|
48
|
+
readonly source: 'code text';
|
|
49
|
+
};
|
|
50
|
+
readonly stairHeadroom: {
|
|
51
|
+
readonly value: number;
|
|
52
|
+
readonly unit: 'm';
|
|
53
|
+
readonly section: 'IRC R311.7.2';
|
|
54
|
+
readonly cite: "IRC R311.7.2, 6 ft 8 in from the line of the nosings (read in the Minnesota (2020) and Colorado (2021) residential codes)";
|
|
55
|
+
readonly source: 'code text';
|
|
56
|
+
};
|
|
57
|
+
readonly stairLanding: {
|
|
58
|
+
readonly value: number;
|
|
59
|
+
readonly unit: 'm';
|
|
60
|
+
readonly section: 'IRC R311.7.6';
|
|
61
|
+
readonly cite: 'IRC R311.7.6, landing depth in the direction of travel on a straight run (read in the Colorado 2021 residential code)';
|
|
62
|
+
readonly source: 'code text';
|
|
63
|
+
};
|
|
64
|
+
readonly riserMax: {
|
|
65
|
+
readonly value: number;
|
|
66
|
+
readonly unit: 'm';
|
|
67
|
+
readonly section: 'IRC R311.7.5.1';
|
|
68
|
+
readonly cite: 'IRC R311.7.5.1 riser height, as the Architect checker holds it; the section text was not read';
|
|
69
|
+
readonly source: 'secondary source';
|
|
70
|
+
};
|
|
71
|
+
readonly treadMin: {
|
|
72
|
+
readonly value: number;
|
|
73
|
+
readonly unit: 'm';
|
|
74
|
+
readonly section: 'IRC R311.7.5.2';
|
|
75
|
+
readonly cite: 'IRC R311.7.5.2 tread depth, as the Architect checker holds it; the section text was not read';
|
|
76
|
+
readonly source: 'secondary source';
|
|
77
|
+
};
|
|
78
|
+
readonly hallWidth: {
|
|
79
|
+
readonly value: number;
|
|
80
|
+
readonly unit: 'm';
|
|
81
|
+
readonly section: 'IRC R311.6';
|
|
82
|
+
readonly cite: 'IRC R311.6 hallway width, as the Architect checker holds it; the section text was not read';
|
|
83
|
+
readonly source: 'secondary source';
|
|
84
|
+
};
|
|
85
|
+
readonly hallComfortable: {
|
|
86
|
+
readonly value: number;
|
|
87
|
+
readonly unit: 'm';
|
|
88
|
+
readonly section: 'IRC R311.6';
|
|
89
|
+
readonly cite: 'a comfortable hallway, as the Architect checker holds it (not a code row)';
|
|
90
|
+
readonly source: 'secondary source';
|
|
91
|
+
};
|
|
92
|
+
readonly exteriorDoorLanding: {
|
|
93
|
+
readonly value: number;
|
|
94
|
+
readonly unit: 'm';
|
|
95
|
+
readonly section: 'IRC R311.3';
|
|
96
|
+
readonly cite: 'IRC R311.3, landing depth at an exterior door, as wide as the door (read in the Colorado 2021 residential code)';
|
|
97
|
+
readonly appliesWhen: 'every-exterior-door';
|
|
98
|
+
readonly source: 'code text';
|
|
99
|
+
};
|
|
100
|
+
readonly doorThresholdDrop: {
|
|
101
|
+
readonly value: number;
|
|
102
|
+
readonly unit: 'm';
|
|
103
|
+
readonly section: 'IRC R311.7.6 / R311.3';
|
|
104
|
+
readonly cite: 'IRC R311.7.6 (no top landing for an interior flight only if no door swings over the stairs) and R311.3.1 / R311.3.2 (a landing or floor at an exterior door is at most 1-1/2 in below the threshold, or 7-3/4 in where the door does not swing over it); read in the Colorado 2021 residential code';
|
|
105
|
+
readonly source: 'code text';
|
|
106
|
+
};
|
|
107
|
+
readonly habitableRoomArea: {
|
|
108
|
+
readonly value: number;
|
|
109
|
+
readonly unit: 'm2';
|
|
110
|
+
readonly section: 'IRC R304.1';
|
|
111
|
+
readonly cite: 'IRC R304.1, 70 sq ft (read in the Virginia 2021 residential code); kitchens are exempt';
|
|
112
|
+
readonly source: 'code text';
|
|
113
|
+
};
|
|
114
|
+
readonly habitableRoomDimension: {
|
|
115
|
+
readonly value: number;
|
|
116
|
+
readonly unit: 'm';
|
|
117
|
+
readonly section: 'IRC R304.2';
|
|
118
|
+
readonly cite: 'IRC R304.2, 7 ft in any horizontal dimension (read in the Virginia 2021 residential code); kitchens are exempt';
|
|
119
|
+
readonly source: 'code text';
|
|
120
|
+
};
|
|
121
|
+
readonly ceilingHeight: {
|
|
122
|
+
readonly value: number;
|
|
123
|
+
readonly unit: 'm';
|
|
124
|
+
readonly section: 'IRC R305.1';
|
|
125
|
+
readonly cite: 'IRC R305.1 (read in the Virginia 2021 residential code); a sloped ceiling needs half the floor at this height and none under 5 ft';
|
|
126
|
+
readonly source: 'code text';
|
|
127
|
+
};
|
|
128
|
+
readonly egressArea: {
|
|
129
|
+
readonly value: 0.53;
|
|
130
|
+
readonly unit: 'm2';
|
|
131
|
+
readonly section: 'IRC R310.2.1';
|
|
132
|
+
readonly cite: 'IRC R310.2.1, net clear opening 5.7 sq ft, kept at the 0.53 m2 the Architect checker uses; sizes read in city and county guides summarising the 2021 numbering';
|
|
133
|
+
readonly source: 'secondary source';
|
|
134
|
+
};
|
|
135
|
+
readonly egressSill: {
|
|
136
|
+
readonly value: number;
|
|
137
|
+
readonly unit: 'm';
|
|
138
|
+
readonly section: 'IRC R310.2.2';
|
|
139
|
+
readonly cite: 'IRC R310.2.2 (2018 numbering, R310.2.3 in 2021), sill at most 44 in above the floor (read in the Texas 2018 residential code on UpCodes)';
|
|
140
|
+
readonly source: 'code text';
|
|
141
|
+
};
|
|
142
|
+
readonly toiletSideClear: {
|
|
143
|
+
readonly value: number;
|
|
144
|
+
readonly unit: 'm';
|
|
145
|
+
readonly section: 'IRC R307.1 / P2705.1';
|
|
146
|
+
readonly cite: 'IRC R307.1 / P2705.1 and Figure R307.1: 15 in from the centre to a side wall, partition or vanity. The section text sends to the figure and holds no number; the figure was not read: a 2009 P2705.1 quote and a 2021 training site';
|
|
147
|
+
readonly source: 'secondary source';
|
|
148
|
+
};
|
|
149
|
+
readonly toiletFrontClear: {
|
|
150
|
+
readonly value: number;
|
|
151
|
+
readonly unit: 'm';
|
|
152
|
+
readonly section: 'IRC R307.1 / P2705.1';
|
|
153
|
+
readonly cite: 'IRC R307.1 / P2705.1 and Figure R307.1: 21 in in front to any wall, fixture or door. The figure was not read: a 2009 P2705.1 quote and a 2021 training site';
|
|
154
|
+
readonly source: 'secondary source';
|
|
155
|
+
};
|
|
156
|
+
readonly lavatorySideClear: {
|
|
157
|
+
readonly value: number;
|
|
158
|
+
readonly unit: 'm';
|
|
159
|
+
readonly section: 'IRC R307.1 / P2705.1';
|
|
160
|
+
readonly cite: 'IRC R307.1 / P2705.1 and Figure R307.1, as for a water closet; the figure was not read';
|
|
161
|
+
readonly source: 'secondary source';
|
|
162
|
+
};
|
|
163
|
+
readonly lavatoryFrontClear: {
|
|
164
|
+
readonly value: number;
|
|
165
|
+
readonly unit: 'm';
|
|
166
|
+
readonly section: 'IRC R307.1 / P2705.1';
|
|
167
|
+
readonly cite: 'IRC R307.1 / P2705.1 and Figure R307.1, as for a water closet; the figure was not read';
|
|
168
|
+
readonly source: 'secondary source';
|
|
169
|
+
};
|
|
170
|
+
readonly showerFrontClear: {
|
|
171
|
+
readonly value: number;
|
|
172
|
+
readonly unit: 'm';
|
|
173
|
+
readonly section: 'IRC R307.1 / P2705.1';
|
|
174
|
+
readonly cite: "in front of the shower opening, from the team designer's list; not found in the IRC text or in a 2021 guide (a guide gives 24 in as the Uniform Plumbing Code figure for a water closet)";
|
|
175
|
+
readonly source: 'secondary source';
|
|
176
|
+
};
|
|
177
|
+
};
|
|
178
|
+
/**
|
|
179
|
+
* Numbers the usage checks borrow for what a person can do in a house: a clear passage, a door, a turning
|
|
180
|
+
* space, the edge a cane finds. They are not a code row and apply to every project whatever its jurisdiction
|
|
181
|
+
* (a usage indicator, not a compliance check); each says where the number comes from. The French figures were
|
|
182
|
+
* checked against the arrêté du 24 décembre 2015 (Légifrance); the ADA figures are as the checks held them.
|
|
183
|
+
*/
|
|
184
|
+
export declare const USAGE_INDICATORS: {
|
|
185
|
+
readonly passage: {
|
|
186
|
+
readonly value: 0.9;
|
|
187
|
+
readonly unit: 'm';
|
|
188
|
+
readonly section: 'arrêté du 24 décembre 2015 art. 11 II, 36 in';
|
|
189
|
+
readonly cite: 'clear width of a path in a house: 0,90 m, the French arrêté du 24 décembre 2015 art. 11 II (consolidated text in force on 27 October 2026, Légifrance); 36 in is the IRC figure for a hall';
|
|
190
|
+
readonly source: 'code text';
|
|
191
|
+
};
|
|
192
|
+
readonly doorClear: {
|
|
193
|
+
readonly value: 0.8;
|
|
194
|
+
readonly unit: 'm';
|
|
195
|
+
readonly section: 'arrêté du 24 décembre 2015 art. 11 II (0,77 m clear), 32 in';
|
|
196
|
+
readonly cite: 'clear width through an interior door: 32 in (the US figure, not read); the French arrêté du 24 décembre 2015 art. 11 II (consolidated text in force on 27 October 2026, Légifrance) asks 0,80 m nominal and 0,77 m clear, which is why a doorway is read at 0.80 m here and a pinch under it is told apart from a passage';
|
|
197
|
+
readonly source: 'secondary source';
|
|
198
|
+
};
|
|
199
|
+
readonly turning: {
|
|
200
|
+
readonly value: 1.5;
|
|
201
|
+
readonly unit: 'm';
|
|
202
|
+
readonly section: 'arrêté du 24 décembre 2015 art. 13 and annexe 2; ADA 304.3';
|
|
203
|
+
readonly cite: "wheelchair turning space, 1.50 m: an espace de manœuvre avec possibilité de demi-tour, Ø 1,50 m (annexe 2), in a bedroom and a salle d'eau, arrêté du 24 décembre 2015 art. 13 (consolidated text in force on 27 October 2026, Légifrance); ADA 304.3 not read";
|
|
204
|
+
readonly source: 'code text';
|
|
205
|
+
};
|
|
206
|
+
};
|
|
207
|
+
export type IrcThresholdId = keyof typeof IRC_2021;
|
|
208
|
+
export type ThresholdId = IrcThresholdId;
|
|
209
|
+
export type CodeProfile = {
|
|
210
|
+
id: CodeProfileId;
|
|
211
|
+
label: string;
|
|
212
|
+
thresholds: Readonly<Partial<Record<ThresholdId, Threshold>>>;
|
|
213
|
+
};
|
|
214
|
+
export declare const CODE_PROFILES: Readonly<Record<CodeProfileId, CodeProfile>>;
|
|
215
|
+
/** Where a project says which code applies: `site.metadata.codeProfile`. */
|
|
216
|
+
export declare const CODE_PROFILE_KEY = "codeProfile";
|
|
217
|
+
type SiteLike = {
|
|
218
|
+
type: string;
|
|
219
|
+
metadata?: unknown;
|
|
220
|
+
};
|
|
221
|
+
/**
|
|
222
|
+
* The profile the project names, or null: a scene that does not say has no jurisdiction. Nothing is
|
|
223
|
+
* guessed from an address, a state code (WA is a US and an Australian state) or the browser.
|
|
224
|
+
*/
|
|
225
|
+
export declare function codeProfileOf(nodes: Readonly<Record<string, SiteLike>>): CodeProfile | null;
|
|
226
|
+
/** What a profile holds for a threshold, or undefined: a rule the other codes' texts do not set has no row. */
|
|
227
|
+
export declare const thresholdOf: (profile: CodeProfile, id: ThresholdId) => Threshold | undefined;
|
|
228
|
+
/** The IRC value of a threshold, for a checker that is a US checker by design (a host's own design checker). */
|
|
229
|
+
export declare const ircValue: (id: IrcThresholdId) => number;
|
|
230
|
+
export {};
|
|
231
|
+
//# sourceMappingURL=code-profile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-profile.d.ts","sourceRoot":"","sources":["../../src/building/code-profile.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The thresholds a building code sets, one table, every row with its unit, its citation and whether the
|
|
3
|
+
* text behind it was read. A check that applies a code reads its numbers here, never from a literal.
|
|
4
|
+
*
|
|
5
|
+
* Which code applies is the project's to say: `site.metadata.codeProfile`. A scene that does not say has
|
|
6
|
+
* no jurisdiction, and a code-specific check then reports information that names the code it used, never
|
|
7
|
+
* a warning (the listing houses are Australian designs; the US IRC is not what they were drawn to). These are usage indicators, not a compliance check.
|
|
8
|
+
*/
|
|
9
|
+
export const CODE_PROFILE_IDS = ['irc-2021'];
|
|
10
|
+
const inches = (n) => n * 0.0254;
|
|
11
|
+
const feet = (n) => n * 0.3048;
|
|
12
|
+
const R311_READ = 'read in the Minnesota (2020) and Colorado (2021) residential codes';
|
|
13
|
+
/** The US International Residential Code, 2021. */
|
|
14
|
+
export const IRC_2021 = {
|
|
15
|
+
stairWidth: {
|
|
16
|
+
value: inches(36),
|
|
17
|
+
unit: 'm',
|
|
18
|
+
section: 'IRC R311.7.1',
|
|
19
|
+
cite: `IRC R311.7.1, stairway clear width above the handrail (${R311_READ})`,
|
|
20
|
+
source: 'code text',
|
|
21
|
+
},
|
|
22
|
+
handrailProjection: {
|
|
23
|
+
value: inches(4.5),
|
|
24
|
+
unit: 'm',
|
|
25
|
+
section: 'IRC R311.7.1',
|
|
26
|
+
cite: `IRC R311.7.1, a handrail projects at most this far into the stairway (${R311_READ})`,
|
|
27
|
+
source: 'code text',
|
|
28
|
+
},
|
|
29
|
+
stairHeadroom: {
|
|
30
|
+
value: inches(80),
|
|
31
|
+
unit: 'm',
|
|
32
|
+
section: 'IRC R311.7.2',
|
|
33
|
+
cite: `IRC R311.7.2, 6 ft 8 in from the line of the nosings (${R311_READ})`,
|
|
34
|
+
source: 'code text',
|
|
35
|
+
},
|
|
36
|
+
stairLanding: {
|
|
37
|
+
value: inches(36),
|
|
38
|
+
unit: 'm',
|
|
39
|
+
section: 'IRC R311.7.6',
|
|
40
|
+
cite: 'IRC R311.7.6, landing depth in the direction of travel on a straight run (read in the Colorado 2021 residential code)',
|
|
41
|
+
source: 'code text',
|
|
42
|
+
},
|
|
43
|
+
riserMax: {
|
|
44
|
+
value: inches(7.75),
|
|
45
|
+
unit: 'm',
|
|
46
|
+
section: 'IRC R311.7.5.1',
|
|
47
|
+
cite: 'IRC R311.7.5.1 riser height, as the Architect checker holds it; the section text was not read',
|
|
48
|
+
source: 'secondary source',
|
|
49
|
+
},
|
|
50
|
+
treadMin: {
|
|
51
|
+
value: inches(10),
|
|
52
|
+
unit: 'm',
|
|
53
|
+
section: 'IRC R311.7.5.2',
|
|
54
|
+
cite: 'IRC R311.7.5.2 tread depth, as the Architect checker holds it; the section text was not read',
|
|
55
|
+
source: 'secondary source',
|
|
56
|
+
},
|
|
57
|
+
hallWidth: {
|
|
58
|
+
value: inches(36),
|
|
59
|
+
unit: 'm',
|
|
60
|
+
section: 'IRC R311.6',
|
|
61
|
+
cite: 'IRC R311.6 hallway width, as the Architect checker holds it; the section text was not read',
|
|
62
|
+
source: 'secondary source',
|
|
63
|
+
},
|
|
64
|
+
hallComfortable: {
|
|
65
|
+
value: inches(42),
|
|
66
|
+
unit: 'm',
|
|
67
|
+
section: 'IRC R311.6',
|
|
68
|
+
cite: 'a comfortable hallway, as the Architect checker holds it (not a code row)',
|
|
69
|
+
source: 'secondary source',
|
|
70
|
+
},
|
|
71
|
+
exteriorDoorLanding: {
|
|
72
|
+
value: inches(36),
|
|
73
|
+
unit: 'm',
|
|
74
|
+
section: 'IRC R311.3',
|
|
75
|
+
cite: 'IRC R311.3, landing depth at an exterior door, as wide as the door (read in the Colorado 2021 residential code)',
|
|
76
|
+
appliesWhen: 'every-exterior-door',
|
|
77
|
+
source: 'code text',
|
|
78
|
+
},
|
|
79
|
+
doorThresholdDrop: {
|
|
80
|
+
value: inches(1.5),
|
|
81
|
+
unit: 'm',
|
|
82
|
+
section: 'IRC R311.7.6 / R311.3',
|
|
83
|
+
cite: 'IRC R311.7.6 (no top landing for an interior flight only if no door swings over the stairs) and R311.3.1 / R311.3.2 (a landing or floor at an exterior door is at most 1-1/2 in below the threshold, or 7-3/4 in where the door does not swing over it); read in the Colorado 2021 residential code',
|
|
84
|
+
source: 'code text',
|
|
85
|
+
},
|
|
86
|
+
habitableRoomArea: {
|
|
87
|
+
value: feet(70) * 0.3048,
|
|
88
|
+
unit: 'm2',
|
|
89
|
+
section: 'IRC R304.1',
|
|
90
|
+
cite: 'IRC R304.1, 70 sq ft (read in the Virginia 2021 residential code); kitchens are exempt',
|
|
91
|
+
source: 'code text',
|
|
92
|
+
},
|
|
93
|
+
habitableRoomDimension: {
|
|
94
|
+
value: feet(7),
|
|
95
|
+
unit: 'm',
|
|
96
|
+
section: 'IRC R304.2',
|
|
97
|
+
cite: 'IRC R304.2, 7 ft in any horizontal dimension (read in the Virginia 2021 residential code); kitchens are exempt',
|
|
98
|
+
source: 'code text',
|
|
99
|
+
},
|
|
100
|
+
ceilingHeight: {
|
|
101
|
+
value: feet(7),
|
|
102
|
+
unit: 'm',
|
|
103
|
+
section: 'IRC R305.1',
|
|
104
|
+
cite: 'IRC R305.1 (read in the Virginia 2021 residential code); a sloped ceiling needs half the floor at this height and none under 5 ft',
|
|
105
|
+
source: 'code text',
|
|
106
|
+
},
|
|
107
|
+
egressArea: {
|
|
108
|
+
value: 0.53,
|
|
109
|
+
unit: 'm2',
|
|
110
|
+
section: 'IRC R310.2.1',
|
|
111
|
+
cite: 'IRC R310.2.1, net clear opening 5.7 sq ft, kept at the 0.53 m2 the Architect checker uses; sizes read in city and county guides summarising the 2021 numbering',
|
|
112
|
+
source: 'secondary source',
|
|
113
|
+
},
|
|
114
|
+
egressSill: {
|
|
115
|
+
value: inches(44),
|
|
116
|
+
unit: 'm',
|
|
117
|
+
section: 'IRC R310.2.2',
|
|
118
|
+
cite: 'IRC R310.2.2 (2018 numbering, R310.2.3 in 2021), sill at most 44 in above the floor (read in the Texas 2018 residential code on UpCodes)',
|
|
119
|
+
source: 'code text',
|
|
120
|
+
},
|
|
121
|
+
toiletSideClear: {
|
|
122
|
+
value: inches(15),
|
|
123
|
+
unit: 'm',
|
|
124
|
+
section: 'IRC R307.1 / P2705.1',
|
|
125
|
+
cite: 'IRC R307.1 / P2705.1 and Figure R307.1: 15 in from the centre to a side wall, partition or vanity. The section text sends to the figure and holds no number; the figure was not read: a 2009 P2705.1 quote and a 2021 training site',
|
|
126
|
+
source: 'secondary source',
|
|
127
|
+
},
|
|
128
|
+
toiletFrontClear: {
|
|
129
|
+
value: inches(21),
|
|
130
|
+
unit: 'm',
|
|
131
|
+
section: 'IRC R307.1 / P2705.1',
|
|
132
|
+
cite: 'IRC R307.1 / P2705.1 and Figure R307.1: 21 in in front to any wall, fixture or door. The figure was not read: a 2009 P2705.1 quote and a 2021 training site',
|
|
133
|
+
source: 'secondary source',
|
|
134
|
+
},
|
|
135
|
+
lavatorySideClear: {
|
|
136
|
+
value: inches(15),
|
|
137
|
+
unit: 'm',
|
|
138
|
+
section: 'IRC R307.1 / P2705.1',
|
|
139
|
+
cite: 'IRC R307.1 / P2705.1 and Figure R307.1, as for a water closet; the figure was not read',
|
|
140
|
+
source: 'secondary source',
|
|
141
|
+
},
|
|
142
|
+
lavatoryFrontClear: {
|
|
143
|
+
value: inches(21),
|
|
144
|
+
unit: 'm',
|
|
145
|
+
section: 'IRC R307.1 / P2705.1',
|
|
146
|
+
cite: 'IRC R307.1 / P2705.1 and Figure R307.1, as for a water closet; the figure was not read',
|
|
147
|
+
source: 'secondary source',
|
|
148
|
+
},
|
|
149
|
+
showerFrontClear: {
|
|
150
|
+
value: inches(24),
|
|
151
|
+
unit: 'm',
|
|
152
|
+
section: 'IRC R307.1 / P2705.1',
|
|
153
|
+
cite: "in front of the shower opening, from the team designer's list; not found in the IRC text or in a 2021 guide (a guide gives 24 in as the Uniform Plumbing Code figure for a water closet)",
|
|
154
|
+
source: 'secondary source',
|
|
155
|
+
},
|
|
156
|
+
};
|
|
157
|
+
/**
|
|
158
|
+
* Numbers the usage checks borrow for what a person can do in a house: a clear passage, a door, a turning
|
|
159
|
+
* space, the edge a cane finds. They are not a code row and apply to every project whatever its jurisdiction
|
|
160
|
+
* (a usage indicator, not a compliance check); each says where the number comes from. The French figures were
|
|
161
|
+
* checked against the arrêté du 24 décembre 2015 (Légifrance); the ADA figures are as the checks held them.
|
|
162
|
+
*/
|
|
163
|
+
export const USAGE_INDICATORS = {
|
|
164
|
+
passage: {
|
|
165
|
+
value: 0.9,
|
|
166
|
+
unit: 'm',
|
|
167
|
+
section: 'arrêté du 24 décembre 2015 art. 11 II, 36 in',
|
|
168
|
+
cite: 'clear width of a path in a house: 0,90 m, the French arrêté du 24 décembre 2015 art. 11 II (consolidated text in force on 27 October 2026, Légifrance); 36 in is the IRC figure for a hall',
|
|
169
|
+
source: 'code text',
|
|
170
|
+
},
|
|
171
|
+
doorClear: {
|
|
172
|
+
value: 0.8,
|
|
173
|
+
unit: 'm',
|
|
174
|
+
section: 'arrêté du 24 décembre 2015 art. 11 II (0,77 m clear), 32 in',
|
|
175
|
+
cite: 'clear width through an interior door: 32 in (the US figure, not read); the French arrêté du 24 décembre 2015 art. 11 II (consolidated text in force on 27 October 2026, Légifrance) asks 0,80 m nominal and 0,77 m clear, which is why a doorway is read at 0.80 m here and a pinch under it is told apart from a passage',
|
|
176
|
+
source: 'secondary source',
|
|
177
|
+
},
|
|
178
|
+
turning: {
|
|
179
|
+
value: 1.5,
|
|
180
|
+
unit: 'm',
|
|
181
|
+
section: 'arrêté du 24 décembre 2015 art. 13 and annexe 2; ADA 304.3',
|
|
182
|
+
cite: "wheelchair turning space, 1.50 m: an espace de manœuvre avec possibilité de demi-tour, Ø 1,50 m (annexe 2), in a bedroom and a salle d'eau, arrêté du 24 décembre 2015 art. 13 (consolidated text in force on 27 October 2026, Légifrance); ADA 304.3 not read",
|
|
183
|
+
source: 'code text',
|
|
184
|
+
},
|
|
185
|
+
};
|
|
186
|
+
export const CODE_PROFILES = {
|
|
187
|
+
'irc-2021': { id: 'irc-2021', label: 'the US IRC 2021', thresholds: IRC_2021 },
|
|
188
|
+
};
|
|
189
|
+
/** Where a project says which code applies: `site.metadata.codeProfile`. */
|
|
190
|
+
export const CODE_PROFILE_KEY = 'codeProfile';
|
|
191
|
+
/**
|
|
192
|
+
* The profile the project names, or null: a scene that does not say has no jurisdiction. Nothing is
|
|
193
|
+
* guessed from an address, a state code (WA is a US and an Australian state) or the browser.
|
|
194
|
+
*/
|
|
195
|
+
export function codeProfileOf(nodes) {
|
|
196
|
+
for (const node of Object.values(nodes)) {
|
|
197
|
+
if (node.type !== 'site')
|
|
198
|
+
continue;
|
|
199
|
+
const named = node.metadata?.[CODE_PROFILE_KEY];
|
|
200
|
+
if (typeof named === 'string' && CODE_PROFILE_IDS.includes(named))
|
|
201
|
+
return CODE_PROFILES[named];
|
|
202
|
+
}
|
|
203
|
+
return null;
|
|
204
|
+
}
|
|
205
|
+
/** What a profile holds for a threshold, or undefined: a rule the other codes' texts do not set has no row. */
|
|
206
|
+
export const thresholdOf = (profile, id) => profile.thresholds[id];
|
|
207
|
+
/** The IRC value of a threshold, for a checker that is a US checker by design (a host's own design checker). */
|
|
208
|
+
export const ircValue = (id) => IRC_2021[id].value;
|
|
@@ -33,8 +33,8 @@ export declare function cornerPartnerUpdates(nodes: Nodes, windowId: string, pat
|
|
|
33
33
|
* The editor's Wrap the corner: a window within `CORNER_REACH_M` of a corner where exactly one other
|
|
34
34
|
* wall ends is slid to the corner and joined to the window waiting there on that wall, adopted
|
|
35
35
|
* (`mergeWindows`); with none waiting, it gets a partner on that wall, of its width (as far as the
|
|
36
|
-
* wall allows), height, sill
|
|
37
|
-
* windows that change, by id.
|
|
36
|
+
* wall allows), height, sill, type and casing, each face's casing on its side of the corner.
|
|
37
|
+
* `create` is the partner to add, if any; `updates` are the windows that change, by id.
|
|
38
38
|
*/
|
|
39
39
|
export declare function wrapCorner(nodes: Nodes, windowId: string): {
|
|
40
40
|
create: WindowNode | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"corner-window.d.ts","sourceRoot":"","sources":["../../src/building/corner-window.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,OAAO,EAAuB,UAAU,EAAE,MAAM,WAAW,CAAA;AAEzE,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,iBAAiB,CAAA;AAExB,KAAK,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;AAC9C,KAAK,KAAK,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAE7B,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,KAAK,CAAA;IACb,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAA;IACf,4DAA4D;IAC5D,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC1B,kGAAkG;IAClG,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAA;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB;aAqE9D,UAAU,EAAE;aACkB,CAAC,MAAM,EAAE,MAAM,CAAC;;EAGtD;
|
|
1
|
+
{"version":3,"file":"corner-window.d.ts","sourceRoot":"","sources":["../../src/building/corner-window.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,OAAO,EAAuB,UAAU,EAAE,MAAM,WAAW,CAAA;AAEzE,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,iBAAiB,CAAA;AAExB,KAAK,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;AAC9C,KAAK,KAAK,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAE7B,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,KAAK,CAAA;IACb,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAA;IACf,4DAA4D;IAC5D,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC1B,kGAAkG;IAClG,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAA;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB;aAqE9D,UAAU,EAAE;aACkB,CAAC,MAAM,EAAE,MAAM,CAAC;;EAGtD;AAcD,0GAA0G;AAC1G,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,GACzB,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAW5B;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,MAAM,GACf;IAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAA;CAAE,CA6E7E;AAED,qEAAqE;AACrE,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAEhG;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,MAAM,GACf,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAKrC;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAQ5B"}
|
|
@@ -63,6 +63,7 @@ const SHARED = [
|
|
|
63
63
|
'sill',
|
|
64
64
|
'sillDepth',
|
|
65
65
|
'sillThickness',
|
|
66
|
+
'casingWidth',
|
|
66
67
|
];
|
|
67
68
|
/** The partner's update for a change to one side of a corner window; null when nothing shared changed. */
|
|
68
69
|
export function cornerPartnerUpdates(nodes, windowId, patch) {
|
|
@@ -86,8 +87,8 @@ export function cornerPartnerUpdates(nodes, windowId, patch) {
|
|
|
86
87
|
* The editor's Wrap the corner: a window within `CORNER_REACH_M` of a corner where exactly one other
|
|
87
88
|
* wall ends is slid to the corner and joined to the window waiting there on that wall, adopted
|
|
88
89
|
* (`mergeWindows`); with none waiting, it gets a partner on that wall, of its width (as far as the
|
|
89
|
-
* wall allows), height, sill
|
|
90
|
-
* windows that change, by id.
|
|
90
|
+
* wall allows), height, sill, type and casing, each face's casing on its side of the corner.
|
|
91
|
+
* `create` is the partner to add, if any; `updates` are the windows that change, by id.
|
|
91
92
|
*/
|
|
92
93
|
export function wrapCorner(nodes, windowId) {
|
|
93
94
|
const window = nodes[windowId];
|
|
@@ -130,11 +131,19 @@ export function wrapCorner(nodes, windowId) {
|
|
|
130
131
|
}).node;
|
|
131
132
|
const post = fusesAtCorner(window) ? 'none' : 'post';
|
|
132
133
|
const slidTo = end === 'start' ? window.width / 2 : wallLengthOf(wall) - window.width / 2;
|
|
134
|
+
// Casing is kept per wall face. A wall running into the corner and one running on out of it
|
|
135
|
+
// have their `a` faces on the same side of it; two meeting end to end or start to start have
|
|
136
|
+
// them on opposite sides, so the partner takes the window's faces the other way round.
|
|
137
|
+
const swapFaces = end === otherEnd;
|
|
133
138
|
return {
|
|
134
139
|
create: {
|
|
135
140
|
...partner,
|
|
141
|
+
frameThickness: window.frameThickness,
|
|
136
142
|
columnRatios: window.columnRatios,
|
|
137
143
|
rowRatios: window.rowRatios,
|
|
144
|
+
casingWidth: window.casingWidth,
|
|
145
|
+
casingFaceA: swapFaces ? window.casingFaceB : window.casingFaceA,
|
|
146
|
+
casingFaceB: swapFaces ? window.casingFaceA : window.casingFaceB,
|
|
138
147
|
corner: { end: otherEnd, partnerId: window.id, post },
|
|
139
148
|
},
|
|
140
149
|
updates: {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { DoorNode } from '../schema/index.js';
|
|
2
2
|
import { type DoorType } from '../schema/nodes/opening-types.js';
|
|
3
|
+
export declare const NEW_DOOR_FRAME_THICKNESS = 0.02;
|
|
3
4
|
/** A door type's own size: the door panel's Type row sets it, and add_door takes it when none is given. */
|
|
4
5
|
export declare const DOOR_TYPE_SIZES: Record<DoorType, {
|
|
5
6
|
width: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"door-types.d.ts","sourceRoot":"","sources":["../../src/building/door-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAe,MAAM,WAAW,CAAA;AACtD,OAAO,EAAE,KAAK,QAAQ,EAAuB,MAAM,+BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"door-types.d.ts","sourceRoot":"","sources":["../../src/building/door-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAe,MAAM,WAAW,CAAA;AACtD,OAAO,EAAE,KAAK,QAAQ,EAAuB,MAAM,+BAA+B,CAAA;AAIlF,eAAO,MAAM,wBAAwB,OAAO,CAAA;AAE5C,2GAA2G;AAC3G,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,QAAQ,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAW/E,CAAA;AAuCD,KAAK,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,GAAG,gBAAgB,GAAG,kBAAkB,CAAC,CAAC,CAAA;AAEnG;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,GAAE,UAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,CAuFvF;AAcD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAUhF"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { defaultDoorSegments } from '../schema/nodes/opening-types.js';
|
|
2
2
|
import { doorStyleLook, doorStylesOf } from './opening-style-presets.js';
|
|
3
|
+
// The schema keeps 0.05 m for saved doors that omit the field (E-003).
|
|
4
|
+
export const NEW_DOOR_FRAME_THICKNESS = 0.02;
|
|
3
5
|
/** A door type's own size: the door panel's Type row sets it, and add_door takes it when none is given. */
|
|
4
6
|
export const DOOR_TYPE_SIZES = {
|
|
5
7
|
hinged: { width: 0.9, height: 2.1 },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"floor-item-fit.d.ts","sourceRoot":"","sources":["../../src/building/floor-item-fit.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,WAAW,EAGjB,MAAM,oCAAoC,CAAA;AAG3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"floor-item-fit.d.ts","sourceRoot":"","sources":["../../src/building/floor-item-fit.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,WAAW,EAGjB,MAAM,oCAAoC,CAAA;AAG3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAI3D,MAAM,MAAM,aAAa,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAEtF,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,IAAI,EAAE,aAAa,CAAA;CAAE,GACnD;IACE,IAAI,EAAE,aAAa,CAAA;IACnB,IAAI,CAAC,EAAE,aAAa,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,oEAAoE;IACpE,SAAS,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAA;CAC1D,CAAA;AAEL;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE;IACJ,OAAO,EAAE,MAAM,CAAA;IACf,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAA;IACzC,mEAAmE;IACnE,KAAK,CAAC,EAAE,WAAW,EAAE,CAAA;CACtB,GACA,eAAe,GAAG,IAAI,CAsCxB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { collectDoorKeepouts, itemBlocksDoorKeepout, itemPlanAabb, } from '../agent-operations/door-clearance.js';
|
|
2
2
|
import { findValidPlacement } from '../agent-operations/layout-clearance.js';
|
|
3
3
|
import { pointInPolygon, polygonBounds } from '../agent-operations/plan-geometry.js';
|
|
4
|
+
import { queryNodes } from '../runtime/node-queries.js';
|
|
4
5
|
/**
|
|
5
6
|
* Whether a floor item fits where it stands. An item its room cannot hold in any turn, or one
|
|
6
7
|
* standing in the space a door needs (as verify_scene's blocked-door check sees it), does not fit.
|
|
@@ -8,10 +9,7 @@ import { pointInPolygon, polygonBounds } from '../agent-operations/plan-geometry
|
|
|
8
9
|
* table and a bed on its rug overlap by design.
|
|
9
10
|
*/
|
|
10
11
|
export function floorItemFit(nodes, item) {
|
|
11
|
-
const zone =
|
|
12
|
-
node.parentId === item.levelId &&
|
|
13
|
-
node.polygon.length >= 3 &&
|
|
14
|
-
pointInPolygon([item.x, item.z], node.polygon));
|
|
12
|
+
const zone = queryNodes(nodes, { type: 'zone', parentId: item.levelId }).find((node) => node.polygon.length >= 3 && pointInPolygon([item.x, item.z], node.polygon));
|
|
15
13
|
const bounds = zone ? polygonBounds(zone.polygon) : undefined;
|
|
16
14
|
const room = zone &&
|
|
17
15
|
bounds && {
|
|
@@ -2,9 +2,7 @@ import type { AnyNode, AnyNodeId } from '../schema/index.js';
|
|
|
2
2
|
/**
|
|
3
3
|
* Making `levelId` the building's ground floor, as the level panel's "Set as ground floor" and the
|
|
4
4
|
* agent's `set_ground_level` do: the building names it (`groundLevelId`), is seated so that level's
|
|
5
|
-
* floor datum
|
|
6
|
-
* construction seats it (`GroundSeat.aboveGrade`: 0.203 m on block, by region and style); its
|
|
7
|
-
* position moves in height, the plan stays where it is, and the
|
|
5
|
+
* floor datum stands on grade; its position moves in height, the plan stays where it is, and the
|
|
8
6
|
* floor indices are renumbered so it is index 0 and the ones under it are the basements. Every
|
|
9
7
|
* floor keeps its place relative to the others. One change set, one undo step. `null` for an id
|
|
10
8
|
* that is no level of a building.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ground-level.d.ts","sourceRoot":"","sources":["../../src/building/ground-level.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAA2B,MAAM,WAAW,CAAA;AAG5E
|
|
1
|
+
{"version":3,"file":"ground-level.d.ts","sourceRoot":"","sources":["../../src/building/ground-level.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAA2B,MAAM,WAAW,CAAA;AAG5E;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,EACtC,KAAK,EACL,OAAO,GACR,EAAE;IACD,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IACjC,OAAO,EAAE,MAAM,CAAA;CAChB;;;;;;;YAoC0B,SAAS;cAIvB,OAAO,CAAC,OAAO,CAAC;;SAQ5B"}
|
|
@@ -3,9 +3,7 @@ import { getLevelElevations } from '../services/storey.js';
|
|
|
3
3
|
/**
|
|
4
4
|
* Making `levelId` the building's ground floor, as the level panel's "Set as ground floor" and the
|
|
5
5
|
* agent's `set_ground_level` do: the building names it (`groundLevelId`), is seated so that level's
|
|
6
|
-
* floor datum
|
|
7
|
-
* construction seats it (`GroundSeat.aboveGrade`: 0.203 m on block, by region and style); its
|
|
8
|
-
* position moves in height, the plan stays where it is, and the
|
|
6
|
+
* floor datum stands on grade; its position moves in height, the plan stays where it is, and the
|
|
9
7
|
* floor indices are renumbered so it is index 0 and the ones under it are the basements. Every
|
|
10
8
|
* floor keeps its place relative to the others. One change set, one undo step. `null` for an id
|
|
11
9
|
* that is no level of a building.
|
|
@@ -29,12 +27,12 @@ export function buildGroundLevelChanges({ nodes, levelId, }) {
|
|
|
29
27
|
return null;
|
|
30
28
|
const [x, y, z] = building.position;
|
|
31
29
|
// Micrometres: the seat is measured through sums of storey heights, and a stored height keeps no noise.
|
|
32
|
-
const moveBy = seat.
|
|
30
|
+
const moveBy = seat.seated ? 0 : Math.round(-seat.offset * 1e6) / 1e6;
|
|
33
31
|
const shift = level.level;
|
|
34
32
|
const renumbered = Object.values(nodes).filter((node) => node.type === 'level' &&
|
|
35
33
|
shift !== 0 &&
|
|
36
34
|
getLevelElevations(nodes).get(node.id)?.buildingId === building.id);
|
|
37
|
-
const unchanged = before?.explicit === true && before.levelId === level.id && seat.
|
|
35
|
+
const unchanged = before?.explicit === true && before.levelId === level.id && seat.seated && shift === 0;
|
|
38
36
|
return {
|
|
39
37
|
buildingId: building.id,
|
|
40
38
|
seat,
|