forked from jappel/leistungsbilanz-ts
Document Linear Excel integration
This commit is contained in:
parent
ae318a51ac
commit
d4803a18d2
16 changed files with 932 additions and 2316 deletions
|
|
@ -9,7 +9,8 @@ This document records architectural direction for future work. It is not a final
|
|||
- persist undo/redo across page reloads and application restarts
|
||||
- provide a project-wide version history with named restore points
|
||||
- preserve an auditable sequence of user, import, migration and restore operations
|
||||
- support future Revit/CSV round-trips using stable IFCGUID-based links
|
||||
- support the Revit/Linear-XLSX round-trip using stable, exact
|
||||
Worksharing-ID-based external identity
|
||||
- keep the persistence boundary replaceable so PostgreSQL can be adopted later
|
||||
|
||||
## Separate Concerns
|
||||
|
|
@ -111,11 +112,12 @@ Implemented automatic-snapshot policy:
|
|||
- automatic capture and retention run inside the same transaction as the
|
||||
triggering project revision
|
||||
|
||||
## Revit / CSV / IFCGUID Round-Trip Direction
|
||||
## Revit / Linear Excel Round-Trip Direction
|
||||
|
||||
**Deferred:** further Revit work will be tackled later, then through the
|
||||
CSV export/import of the Linear plugin in Revit instead of Dynamo. Details:
|
||||
[Revit-CSV requirements, section 1](spec/revit-csv-integration-requirements.md).
|
||||
Phase 14 is active and follows the
|
||||
[Linear-Excel requirements](spec/revit-excel-integration-requirements.md) and
|
||||
[R0–R10 plan](spec/revit-excel-phase-14-plan.md). The existing CSV/IFCGUID
|
||||
runtime is a legacy starting point for the cutover, not the target model.
|
||||
|
||||
External model exchange should use explicit staging and link entities instead of writing imported rows directly into circuits.
|
||||
|
||||
|
|
@ -124,9 +126,12 @@ Conceptual entities:
|
|||
- `ExternalModelSource`
|
||||
- identifies a Revit/IFC model or another external source within a project
|
||||
- `ExternalImportBatch`
|
||||
- file name, checksum, import time, format/version and processing status
|
||||
- file name, checksum, import time, object count and processing status
|
||||
- only the latest batch keeps original workbook bytes, matrix and the
|
||||
configuration copy; older batches keep date, filename, checksum and count
|
||||
- `ExternalModelObject`
|
||||
- stable IFCGUID and optional Revit element identifiers
|
||||
- exact case-sensitive Worksharing-ID as external identity
|
||||
- optional IfcGUID as non-unique source redundancy
|
||||
- source attributes and last-seen import batch
|
||||
- `ExternalObjectLink`
|
||||
- explicit relationship to a project device, circuit device row or another future domain entity
|
||||
|
|
@ -137,13 +142,27 @@ Conceptual entities:
|
|||
|
||||
Required behavior:
|
||||
|
||||
- IFCGUID uniqueness is scoped to project and external model source.
|
||||
- Worksharing-ID uniqueness is scoped to the external source and uses exact,
|
||||
case-sensitive comparison. IfcGUID is not a matching key.
|
||||
- Parsing writes to staging first.
|
||||
- Users preview additions, changes, missing objects and conflicts before applying them.
|
||||
- Applying an import creates one project revision and one auditable change set.
|
||||
- Imported source values and locally assigned planning values remain distinguishable.
|
||||
- Export retains IFCGUID and source identifiers so Revit parameters can be matched deterministically.
|
||||
- Missing objects and duplicate/conflicting identifiers are reported, never silently reassigned.
|
||||
- Export retains Worksharing-ID so Linear can match rows deterministically.
|
||||
- Missing objects and duplicate/conflicting Worksharing-IDs are reported,
|
||||
never silently reassigned.
|
||||
|
||||
The project configuration has no separate revision counter. Stateless plans
|
||||
and apply requests bind to `expectedRevision`; every applied import batch holds
|
||||
its configuration copy. Apply reparses the retransmitted workbook. Undo and
|
||||
Redo operate only on persisted complete before/after states and never parse an
|
||||
Excel file.
|
||||
|
||||
Deleting a linked row, circuit or group detaches affected Revit objects in the
|
||||
same typed command after an explicit warning; its inverse restores all links.
|
||||
Only deleting referenced rooms and distribution boards is blocked. Linked
|
||||
objects always derive their board from their row, while a room default-board
|
||||
change affects only unassigned objects.
|
||||
|
||||
## SQLite and PostgreSQL Direction
|
||||
|
||||
|
|
@ -292,7 +311,8 @@ Remaining constraints before completing project version history:
|
|||
boundary; extend it whenever further project mutations are introduced
|
||||
- project creation remains initialization at revision zero, while global device
|
||||
templates remain outside any single project history
|
||||
- do not model IFCGUID as an overloaded circuit equipment identifier
|
||||
- do not model Worksharing-ID or IfcGUID as an overloaded circuit equipment
|
||||
identifier or an internal relation id
|
||||
- keep database backup/restore checks separate from project history tests
|
||||
|
||||
## Deferred Decisions
|
||||
|
|
@ -300,5 +320,6 @@ Remaining constraints before completing project version history:
|
|||
- whether large snapshot payloads remain in PostgreSQL or move to object storage
|
||||
- branch visualization after undo followed by new edits
|
||||
- user/role model and actor attribution
|
||||
- supported Revit CSV dialects and parameter mapping UI
|
||||
- Linear-XLSX compatibility beyond the observed sample and any future
|
||||
project-independent mapping profiles
|
||||
- PostgreSQL deployment topology and migration date
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue