forked from jappel/leistungsbilanz-ts
Replace the Revit drawer with the assignment dialog
- RevitAssignmentDialog: objects as room/group/object with multi-select, filters and drag-and-drop or keyboard assignment onto rows, circuits or new circuits; room-wise automatic split under the socket limit; local plan with review of conflicts and limit overruns, one command on apply and re-check after a revision conflict. - Row badge and context menu list linked objects and detach single objects or all; the context menu opens the dialog for a circuit. - Remove the R7 drawer and direct grid drops; update AGENTS.md, API and architecture docs and mark R11-R14 complete. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
fd45a1caeb
commit
191455c745
12 changed files with 1885 additions and 157 deletions
|
|
@ -500,9 +500,17 @@ Full request example and calculation rules: `docs/cable-sizing-module.md`.
|
|||
additions, source changes, unchanged and missing objects. Apply requires the
|
||||
preview hash and source decisions and updates linked row quantities atomically.
|
||||
- `GET|PUT .../external-model/objects` loads one compact project list and
|
||||
applies revision-safe multi-object planning changes.
|
||||
applies revision-safe multi-object planning changes. The list also carries
|
||||
`maxSocketsPerCircuit` and the `socketDeviceTypeIds` of the configuration.
|
||||
- `POST .../objects/assignment-plan` applies one plan of the Revit assignment
|
||||
dialog: `{ expectedRevision, circuitListId, newCircuits: [{ key, sectionId }],
|
||||
rows: [{ kind: "existing-row" | "new-row" | "new-row-in-new-circuit", … ,
|
||||
objectIds }], confirmedConflictObjectIds, confirmedOverLimitCircuitKeys }`
|
||||
(strict schema). New-circuit BMKs follow the request order; circuits above
|
||||
the project socket limit are confirmed by circuit id or `new:<key>`.
|
||||
- `POST .../objects/assign-row|assign-new-row|assign-new-circuit|detach-row`
|
||||
changes external-object row assignments through persistent commands.
|
||||
remain available; the editor uses only `detach-row` (single objects or all
|
||||
objects of one row).
|
||||
- `POST .../objects/delete-missing` requires `confirmed: true`, deletes only
|
||||
objects marked missing and adjusts linked row quantities in the same command.
|
||||
- `POST .../external-model/return-workbook` creates the structure-preserving
|
||||
|
|
|
|||
|
|
@ -736,6 +736,36 @@ SQLite-Blöcken. Der synthetische Abnahmetest verarbeitet 5.000 Objekte; Details
|
|||
und Messwerte stehen in
|
||||
[R10-Abnahme](spec/revit-excel-r10-validation.md).
|
||||
|
||||
## Revit-Zuordnungsdialog und Steckdosen-Höchstwert (R11–R14)
|
||||
|
||||
Der Stromkreislisteneditor ordnet Revit-Objekte über den Dialog
|
||||
`RevitAssignmentDialog` zu (Toolbar „Revit-Objekte zuordnen“ oder Kontextmenü
|
||||
eines Stromkreises). Der frühere rechte Drawer und das Ziehen direkt ins Grid
|
||||
sind entfernt. Links stehen die zuordenbaren Objekte des Verteilers als Raum →
|
||||
Gruppe → Objekt mit Mehrfachauswahl und Filtern, rechts die Stromkreise mit
|
||||
Steckdosenbelegung. Drag-and-drop, „Zuweisen an …“ und „Automatisch aufteilen
|
||||
…“ ändern nur einen lokalen Plan.
|
||||
|
||||
Die Planungsregeln liegen importfrei in `src/shared/revit/assignment-plan.ts`
|
||||
und werden von Dialog und API gemeinsam genutzt: Zeilenbildung je Raum,
|
||||
Auswahlkenner, Geräteart, Kategorie, ProjectDevice und Planungswerten,
|
||||
Konfliktliste, Belegung und die raumweise Aufteilung ohne Teilung eines
|
||||
Objekts. `POST /api/projects/:projectId/external-model/objects/assignment-plan`
|
||||
prüft den Plan erneut (strikte zod-Eingabe), verlangt die ausdrückliche
|
||||
Bestätigung von Planungswert-Konflikten und Höchstwert-Überschreitungen und
|
||||
schreibt ihn als `external-object.apply-assignment-plan`: neue Stromkreise mit
|
||||
einmal geplanten BMKs und Standardschutz, neue Rows, Mengenänderungen und alle
|
||||
Objektlinks in einer Revision. Die history-only Inverse
|
||||
`external-object.revert-assignment-plan` entfernt nur unverändert gebliebene
|
||||
erzeugte Struktur.
|
||||
|
||||
Der Höchstwert `projects.max_sockets_per_circuit` ist eine allgemeine
|
||||
Projekteinstellung (Migration `0018`, `project.update-settings` Version 4,
|
||||
Snapshot-Schema 11). Welche Revit-Gerätearten als Steckdose zählen, legt
|
||||
`deviceTypes[].isSocket` der Revit-Konfiguration Version 2 fest; Version 1
|
||||
leitet es aus `socketCount`-Familienregeln ab
|
||||
(`src/shared/revit/socket-device-types.ts`).
|
||||
|
||||
## Historische CSV-Unterlagen
|
||||
|
||||
Der vor R3 vorhandene CSV-/IfcGUID-Laufzeitpfad ist entfernt. Seine damalige
|
||||
|
|
|
|||
|
|
@ -19,10 +19,10 @@ Der alte CSV-Plan 14.0–14.6 ist abgelöst und wird nicht fortgeschrieben.
|
|||
| R8 | abgeschlossen | Rückgabe-Excel für alle, abweichende oder ausgewählte Objekte und append-only Exportnachweis sind umgesetzt. |
|
||||
| R9 | abgeschlossen | Vollständiger Folgeimport nach exakter Worksharing-ID mit Quellentscheidungen, fehlenden Objekten, bestätigtem Löschen und persistentem Undo/Redo. |
|
||||
| R10 | abgeschlossen | Ende-zu-Ende-Kette, 5.000-Objekte-Lasttest, gebatchte Zustandspersistenz und Abschlussdokumentation. |
|
||||
| R11 | geplant | Projekteinstellung `maxSocketsPerCircuit` und Geräteart-Merkmal `isSocket` samt Hochstufung und Einstellungs-UI. |
|
||||
| R12 | geplant | Reines Planungsmodul für Row-Bildung, Belegung, Konflikte und raumweise Aufteilung. |
|
||||
| R13 | geplant | Atomarer Command `external-object.apply-assignment-plan` mit Route und exakter Inverse. |
|
||||
| R14 | geplant | Zuordnungsdialog mit Drag-and-drop und Plan, Row-Objektliste mit Einzel-Lösen, Entfernen des R7-Drawers. |
|
||||
| R11 | abgeschlossen | Projekteinstellung `maxSocketsPerCircuit` und Geräteart-Merkmal `isSocket` samt Hochstufung und Einstellungs-UI. |
|
||||
| R12 | abgeschlossen | Reines Planungsmodul für Row-Bildung, Belegung, Konflikte und raumweise Aufteilung. |
|
||||
| R13 | abgeschlossen | Atomarer Command `external-object.apply-assignment-plan` mit Route und exakter Inverse. |
|
||||
| R14 | abgeschlossen | Zuordnungsdialog mit Drag-and-drop und Plan, Row-Objektliste mit Einzel-Lösen, Entfernen des R7-Drawers. |
|
||||
|
||||
## R0 – Audit
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue