Add optional room areas

This commit is contained in:
Julian Appel 2026-09-27 20:00:03 +02:00
parent a6500e2b26
commit dce31ee143
26 changed files with 3669 additions and 78 deletions

View file

@ -284,14 +284,16 @@ not change the project revision or undo/redo stacks. Restoring a server-stored
snapshot verifies its checksum and the current-state hash, replaces supported
project data atomically and records a new `restore` revision with a complete
inverse command. Restore can therefore be undone and redone after a restart.
Current snapshot schema version 7 additionally stores the project buildings
and `floors[].buildingId` (see `docs/building-structure.md`); versions 1 to 6
are upgraded with no buildings and `buildingId = null`. Version 6 stores the
Current snapshot schema version 8 additionally stores the optional net room
area `rooms[].areaM2` (see `docs/building-structure.md`); versions 1 to 7 are
upgraded with `areaM2 = null`. Version 7 stores the project buildings and
`floors[].buildingId`; versions 1 to 6 are upgraded with no buildings and
`buildingId = null`. Version 6 stores the
distribution-board info fields `boardNumber`, `location`, `fedFrom` and
`remark` and the project cover fields `siteAddress`, `workStage`,
`projectLead` and `projectEditor`; all older supported versions are upgraded
with `null` for these fields.
Stored named and automatic snapshots of every supported version (1 to 7)
Stored named and automatic snapshots of every supported version (1 to 8)
remain restorable; they are upgraded while parsing. Version 5 stores
the manual quantity share of every CircuitDeviceRow. Version 4 snapshots are upgraded with
`manualQuantity = quantity`; they already contain the complete confirmed
@ -307,7 +309,7 @@ project graph.
Project-wide Revit CSV configuration uses
`external-csv-configuration.update`. Its complete expected/target snapshot is
persisted through the shared project-command transaction, so create, update,
delete, Undo and Redo are revision-safe. Snapshot schema 5-7, restore and portable
delete, Undo and Redo are revision-safe. Snapshot schema 5-8, restore and portable
project duplication preserve the configuration; duplication remaps its internal
id and project link.
The project page exposes the Revit CSV modal. It edits the complete
@ -481,10 +483,15 @@ These fields are intended to be prefillable from Revit parameters later, but
only through the Phase 14 rules (preview, explicit confirmation, no silent
overwrite).
Floor and room setup uses persistent insert, update and delete commands with
complete stable snapshots. Their inverses remove or restore only unchanged records and
reject floors with assigned rooms/distribution boards or rooms referenced by
device rows. All write routes require `expectedRevision` and return the updated
history state.
complete stable snapshots. Room command schema version 2 stores the optional,
finite, non-negative net room area `areaM2`; persisted version-1 commands are
upgraded with `areaM2 = null` and exact record comparison prevents them from
silently overwriting a newer area. Room areas are maintained manually, shown
with two decimals and summarized per floor and building with a separate missing
count. Revit import and W/m² use remain follow-up work. Command inverses remove
or restore only unchanged records and reject floors with
assigned rooms/distribution boards or rooms referenced by device rows. All
write routes require `expectedRevision` and return the updated history state.
Required operations: