Added revit specs
This commit is contained in:
@@ -363,6 +363,60 @@ Required operations:
|
||||
- edit equipment identifier
|
||||
- synchronization changes
|
||||
|
||||
|
||||
## Revit / CSV External Model Work
|
||||
|
||||
When explicitly working on Phase 14, use
|
||||
`docs/spec/revit-csv-integration-requirements.md` as the detailed source of
|
||||
truth together with the current architecture documents.
|
||||
|
||||
Critical rules:
|
||||
|
||||
- Revit integration is optional. Do not make imported external data mandatory
|
||||
for projects, rooms, project devices, circuits or device rows.
|
||||
- Parse imports into staging first. Never write CSV rows directly into circuits
|
||||
or device rows.
|
||||
- Keep external object identity separate from internal UUIDs and circuit BMKs.
|
||||
`IfcGUID` identifies the external Revit object and must never replace an
|
||||
internal UUID or `equipmentIdentifier`.
|
||||
- One imported Revit object may exist without a `CircuitDeviceRow`.
|
||||
Import, room assignment, distribution-board assignment, classification and
|
||||
ProjectDevice linking do not create a row.
|
||||
- Create or change a `CircuitDeviceRow` only after an explicit user action in
|
||||
the circuit-list editor.
|
||||
- Several external objects may link to one `CircuitDeviceRow`, while every
|
||||
external object remains individually traceable for follow-up imports and
|
||||
object-specific export.
|
||||
- Multi-socket Revit objects are indivisible. Their effective quantity may be
|
||||
greater than one, but one external object must never be split across circuits.
|
||||
- Existing ProjectDevices are canonical project templates and must not be
|
||||
overwritten from Revit values. When creating a new ProjectDevice, mapped
|
||||
Revit values may prefill the creation form.
|
||||
- Store imported source values separately from local planning values and local
|
||||
overrides. Imports never silently overwrite local values.
|
||||
- Repeated imports match deterministically by project/source and `IfcGUID`.
|
||||
New, changed, missing and conflicting objects require preview and explicit
|
||||
user decisions.
|
||||
- The first implementation assumes one complete Revit model export per project.
|
||||
Do not add visible multi-source, linked-model or partial-import management.
|
||||
- CSV configuration is project-scoped. Preserve title, header, blank, subtotal
|
||||
and unknown rows and columns for the return export.
|
||||
- Treat rows without `IfcGUID` as passthrough when they contain no object data.
|
||||
Do not report Revit subtotal rows as missing-identity objects.
|
||||
- Apply each confirmed import diff through a typed project command with
|
||||
`expectedRevision`, complete inverse data and the shared project command
|
||||
transaction boundary.
|
||||
- External-model state must be added to logical project snapshots and portable
|
||||
project transfer when it becomes part of the supported runtime.
|
||||
- Keep CSV parsing/serialization in a transport adapter. Domain services must
|
||||
not depend on CSV syntax, React, `better-sqlite3` or concrete repositories.
|
||||
- Do not implement automatic circuit planning, Dynamo/API exchange,
|
||||
PostgreSQL, background jobs or permissions as part of the initial CSV phase.
|
||||
|
||||
Before implementation, audit the current ProjectDevice, CircuitDeviceRow,
|
||||
command, snapshot, transfer and editor drag-and-drop paths. Propose concrete
|
||||
domain objects and commands before adding migrations.
|
||||
|
||||
## Future Sizing
|
||||
|
||||
Do not implement full cable/protection sizing unless explicitly requested.
|
||||
@@ -400,7 +454,8 @@ Users must be able to override sizing suggestions.
|
||||
|
||||
## Current Deferred Work
|
||||
|
||||
- Revit/CSV/IFCGUID round-trip
|
||||
- Revit/CSV/IFCGUID round-trip, except when Phase 14 is explicitly requested and
|
||||
`docs/spec/revit-csv-integration-requirements.md` is being followed
|
||||
- full electrical sizing
|
||||
- multi-user/PostgreSQL operation
|
||||
- supported production deployment
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user