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:
Julian Appel 2026-10-30 21:39:27 +01:00
parent fd45a1caeb
commit 191455c745
12 changed files with 1885 additions and 157 deletions

View file

@ -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