forked from jappel/leistungsbilanz-ts
Specify Revit assignment dialog and per-project socket limit
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
38019fe087
commit
85cbdbf8e0
2 changed files with 232 additions and 25 deletions
|
|
@ -124,7 +124,7 @@ Zielvertrag:
|
||||||
|
|
||||||
```ts
|
```ts
|
||||||
interface ExternalModelConfiguration {
|
interface ExternalModelConfiguration {
|
||||||
schemaVersion: 1;
|
schemaVersion: 2;
|
||||||
layout: {
|
layout: {
|
||||||
headerRow: number;
|
headerRow: number;
|
||||||
firstDataRow: number;
|
firstDataRow: number;
|
||||||
|
|
@ -153,6 +153,19 @@ interface ExternalModelConfiguration {
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Schema-Version 2 ergänzt nur das Geräteart-Merkmal `isSocket`
|
||||||
|
(Abschnitt 6). Konfigurationen der Version 1 – auch Kopien in Importbatches,
|
||||||
|
History-Commands und Snapshots – werden beim Lesen hochgestuft.
|
||||||
|
|
||||||
|
Der Steckdosen-Höchstwert je Stromkreis ist **keine** Revit-Einstellung,
|
||||||
|
sondern eine allgemeine Projekteinstellung der Leistungsbilanz:
|
||||||
|
`Project.maxSocketsPerCircuit` (positive ganze Zahl oder `null` = keine
|
||||||
|
Grenze), auftraggeberabhängig und in den Projekteinstellungen gepflegt. Er
|
||||||
|
wird über `project.update-settings` (Schema-Version 4) geändert; Versionen
|
||||||
|
1–3 bleiben ausführbar und lassen den Wert unverändert. Snapshot-Schema 11
|
||||||
|
und der Projekttransfer enthalten ihn; ältere Stände werden mit `null`
|
||||||
|
hochgestuft.
|
||||||
|
|
||||||
Standardzuordnung:
|
Standardzuordnung:
|
||||||
|
|
||||||
| Schlüssel | Bedeutung | Standardspalte |
|
| Schlüssel | Bedeutung | Standardspalte |
|
||||||
|
|
@ -192,6 +205,13 @@ Leistung je Einheit in W, GZF, cosPhi und Kostengruppe. Jede exakte
|
||||||
`Familie und Typ`-Regel verweist auf genau eine Geräteart und verwendet die
|
`Familie und Typ`-Regel verweist auf genau eine Geräteart und verwendet die
|
||||||
Mengenregel `1` oder `socketCount`.
|
Mengenregel `1` oder `socketCount`.
|
||||||
|
|
||||||
|
Jede Geräteart trägt zusätzlich das Merkmal `isSocket` („Steckdose“). Nur
|
||||||
|
Objekte solcher Gerätearten zählen für den Steckdosen-Höchstwert je
|
||||||
|
Stromkreis (Abschnitt 11), unabhängig von ihrer Kategorie. Beim Hochstufen
|
||||||
|
einer Konfiguration der Version 1 und beim Anlegen im Wizard wird `isSocket`
|
||||||
|
mit `true` vorbelegt, wenn eine Familienregel dieser Geräteart die
|
||||||
|
Mengenregel `socketCount` verwendet; der Planer kann das Merkmal ändern.
|
||||||
|
|
||||||
Mehrere Revit-Familien dürfen auf dieselbe Geräteart zeigen. Jedes Revit-
|
Mehrere Revit-Familien dürfen auf dieselbe Geräteart zeigen. Jedes Revit-
|
||||||
Objekt bleibt trotzdem einzeln über seine Worksharing-ID nachverfolgbar.
|
Objekt bleibt trotzdem einzeln über seine Worksharing-ID nachverfolgbar.
|
||||||
Unbekannte Familien müssen im Importwizard zugeordnet oder über eine neue
|
Unbekannte Familien müssen im Importwizard zugeordnet oder über eine neue
|
||||||
|
|
@ -306,33 +326,167 @@ aktuellen Row-Werte als Planungswerte und entsprechende Overrides.
|
||||||
|
|
||||||
## 11. Editor-Zuordnung und Löschen
|
## 11. Editor-Zuordnung und Löschen
|
||||||
|
|
||||||
Umsetzungsstand R7: Der Stromkreislisteneditor lädt die kompakte Projektliste
|
Stand 30.10.2026: Dieser Abschnitt ersetzt den R7-Editorbereich (rechter
|
||||||
gemeinsam mit dem Baum, gruppiert unzugeordnete Objekte des aktuellen
|
Drawer mit Gruppen-Drag direkt ins Grid). Der Drawer konnte gleichartige
|
||||||
Verteilers im Client und bietet Gruppen sowie einzelne Worksharing-IDs als
|
Objekte eines Raums nur gesamt oder einzeln zuordnen und kannte keinen
|
||||||
Drag-Quelle an. Drop auf Row, Circuit und freien Gruppenbereich verwendet die
|
Steckdosen-Höchstwert. Die drei R7-Zuordnungscommands bleiben für gespeicherte
|
||||||
drei persistenten Zuordnungscommands. Row-Badges zeigen die Linkzahl; Lösen
|
History-Einträge ausführbar; die Editor-UI verwendet sie nicht mehr.
|
||||||
kopiert die aktuellen Row-Planungswerte als Overrides. Row-, Circuit- und
|
Umsetzung: Pakete R11–R14 im [Phasenplan](revit-excel-phase-14-plan.md).
|
||||||
Gruppenlöschungen speichern die vollständigen Linkübergänge im Forward- und
|
|
||||||
Inverse-Command. Raum- und Verteilerlöschungen prüfen externe Referenzen
|
|
||||||
explizit.
|
|
||||||
|
|
||||||
Der rechte, überlagernde Editorbereich zeigt unzugeordnete konfliktfreie
|
### 11.1 Grundsatz
|
||||||
Objekte des aktuellen Verteilers. Gruppierungsschlüssel sind interner Raum,
|
|
||||||
Auswahlkenner, Geräteart, Kategorie, identische Planungswerte und kompatibler
|
|
||||||
ProjectDevice-Link. Die Anzeige nennt Summe der wirksamen Mengen und Zahl der
|
|
||||||
externen Objekte. Gruppen sind aufklappbar; Einzel- und Mehrfachauswahl sowie
|
|
||||||
Filter bleiben möglich.
|
|
||||||
|
|
||||||
Drag-and-drop:
|
- Ein Revit-Objekt (eine Familieninstanz, z. B. eine Doppelsteckdose mit
|
||||||
|
wirksamer Menge 2) ist unteilbar. Es ist mit höchstens einer Row verknüpft
|
||||||
|
und gehört damit immer zu genau einem Stromkreis.
|
||||||
|
- Aufgeteilt wird ausschließlich auf Objektebene: Die 8 Doppelsteckdosen eines
|
||||||
|
Raums (16 wirksame Steckdosen) können auf mehrere Stromkreise verteilt
|
||||||
|
werden, eine einzelne Doppelsteckdose nie.
|
||||||
|
- Zugeordnet wird über den Zuordnungsdialog. Drag-and-drop findet innerhalb
|
||||||
|
des Dialogs statt, nicht direkt aus einer Seitenleiste ins Grid.
|
||||||
|
|
||||||
- auf vorhandene Row: genau diese Row;
|
### 11.2 Zuordnungsdialog „Revit-Objekte zuordnen“
|
||||||
- auf Circuit: neue Row mit `manualQuantity = 0`;
|
|
||||||
- auf freien Bereich: neuer Circuit, Schutz und Row in einem Command.
|
|
||||||
|
|
||||||
Neue IDs und BMK werden einmal geplant; Redo rechnet sie nicht neu. Neue Rows
|
Öffnen:
|
||||||
übernehmen den bestätigten Gruppenzustand und die Summe der effektiven Mengen.
|
|
||||||
An Rows zeigt ein Hinweis die Zahl verknüpfter Revit-Objekte; einzelne Objekte
|
- Werkzeugleiste des Editors: „Revit-Objekte zuordnen (N)“, N = Zahl der
|
||||||
können ausdrücklich gelöst werden.
|
zuordenbaren Objekte des Verteilers;
|
||||||
|
- Kontextmenü eines Stromkreises oder einer Row: derselbe Dialog mit
|
||||||
|
vorausgewähltem und sichtbar markiertem Ziel.
|
||||||
|
|
||||||
|
Gezeigt werden vorhandene (`present`), unzugeordnete Objekte, deren
|
||||||
|
effektiver Verteiler der aktuelle Verteiler ist. Objekte ohne Verteiler
|
||||||
|
erscheinen nur als Hinweis „N Objekte ohne Verteiler – auf der Revit-Seite
|
||||||
|
zuordnen“.
|
||||||
|
|
||||||
|
Der Dialog ist großflächig und zweigeteilt.
|
||||||
|
|
||||||
|
Links, Objektbereich:
|
||||||
|
|
||||||
|
- Baum Raum → Gruppe → Objekt. Raumknoten zeigen Nummer, Name und die Summe
|
||||||
|
der wirksamen Steckdosen. Gruppen verwenden die Schlüssel interner Raum,
|
||||||
|
Auswahlkenner, Geräteart, Kategorie, identische Planungswerte und
|
||||||
|
ProjectDevice-Link und zeigen Objektzahl und Mengensumme.
|
||||||
|
- Jede Objektzeile zeigt `Familie und Typ`, die wirksame Menge (z. B. „2ד)
|
||||||
|
und die Worksharing-ID (gekürzt, vollständig im Tooltip).
|
||||||
|
- Checkboxen auf allen Ebenen (Raum und Gruppe dreiwertig). Klick wählt aus,
|
||||||
|
Strg+Klick schaltet um, Umschalt+Klick wählt einen Bereich.
|
||||||
|
- Suche über Raum, Familie, Auswahlkenner und Worksharing-ID; Filter
|
||||||
|
Geräteart und „nur Steckdosen“.
|
||||||
|
- Fußzeile: „6 Objekte · 12 Steckdosen · 2 Räume“ und die Aktionen
|
||||||
|
„Zuweisen an …“ und „Automatisch aufteilen …“.
|
||||||
|
|
||||||
|
Rechts, Zielbereich:
|
||||||
|
|
||||||
|
- Stromkreise des Verteilers nach Stromkreisgruppen, je Zeile BMK, Name und
|
||||||
|
Belegung „6 / 8 Steckdosen“ (ohne Höchstwert nur die Zahl).
|
||||||
|
- Aufklappbar bis auf die Rows einschließlich geplanter neuer Rows.
|
||||||
|
- Je Gruppe ein Ablagefeld „Neuer Stromkreis“.
|
||||||
|
- Geplante, noch nicht übernommene Zuordnungen sind farblich markiert und
|
||||||
|
lassen sich einzeln zurücknehmen oder per Drag zurück in den Objektbereich
|
||||||
|
legen.
|
||||||
|
|
||||||
|
### 11.3 Drag-and-drop und Tastatur
|
||||||
|
|
||||||
|
- Die aktuelle Auswahl (oder das gezogene Objekt, wenn es nicht ausgewählt
|
||||||
|
ist) wird auf ein Ziel im Zielbereich gezogen:
|
||||||
|
- auf eine Row: genau diese Row;
|
||||||
|
- auf einen Stromkreis: Row-Bildung nach 11.4;
|
||||||
|
- auf „Neuer Stromkreis“: neuer Stromkreis in dieser Gruppe, Row-Bildung
|
||||||
|
nach 11.4.
|
||||||
|
- Während des Ziehens sind gültige Ziele hervorgehoben. Ungültige Ziele
|
||||||
|
(andere Kategorie) sind ausgegraut und nennen den Grund im Tooltip. Ziele,
|
||||||
|
deren Höchstwert überschritten würde, bleiben gültig, zeigen aber die
|
||||||
|
künftige Belegung in Warnfarbe, z. B. „10 / 8“.
|
||||||
|
- Tastaturalternative: „Zuweisen an …“ öffnet eine Zielauswahl mit allen
|
||||||
|
Stromkreisen und „Neuer Stromkreis in Gruppe …“.
|
||||||
|
- Ein Drop schreibt nichts. Er erweitert den lokalen Zuordnungsplan des
|
||||||
|
Dialogs (11.7).
|
||||||
|
|
||||||
|
### 11.4 Row-Bildung im Zielstromkreis
|
||||||
|
|
||||||
|
Die einem Stromkreis zugewiesenen Objekte werden nach den Gruppenschlüsseln
|
||||||
|
aus 11.2 zusammengefasst; jede Teilgruppe ergibt einen Row-Vorschlag. Objekte
|
||||||
|
aus mehreren Räumen ergeben damit mehrere Rows im selben Stromkreis.
|
||||||
|
|
||||||
|
- Existiert im Stromkreis eine Row mit gleichem Raum, gleicher Kategorie,
|
||||||
|
gleichem Auswahlkenner und kompatiblem ProjectDevice-Link, wird sie als Ziel
|
||||||
|
vorgeschlagen. Der Planer kann je Vorschlag auf „neue Row“ umstellen.
|
||||||
|
- Neue Rows erhalten `manualQuantity = 0`, den Gruppenzustand als
|
||||||
|
Planungswerte und die Summe der wirksamen Mengen als Anzahl.
|
||||||
|
- Abweichende Planungswerte gegenüber einer bestehenden Row sind Konflikte
|
||||||
|
(11.7).
|
||||||
|
|
||||||
|
### 11.5 Steckdosen-Höchstwert
|
||||||
|
|
||||||
|
- Grundlage ist die Projekteinstellung `maxSocketsPerCircuit`
|
||||||
|
(Abschnitt 5). Im Dialog wird er angezeigt; geändert wird er in den
|
||||||
|
Projekteinstellungen.
|
||||||
|
- Belegung eines Stromkreises = Summe der wirksamen Mengen aller verknüpften
|
||||||
|
und geplanten Objekte, deren Geräteart `isSocket` trägt, über alle Rows des
|
||||||
|
Stromkreises. Manuelle Mengenanteile zählen nicht mit.
|
||||||
|
- Der Höchstwert ist eine Warnung, keine Sperre. Eine manuelle Zuweisung über
|
||||||
|
den Höchstwert ist erlaubt, muss aber vor der Übernahme ausdrücklich
|
||||||
|
bestätigt werden.
|
||||||
|
- Die automatische Aufteilung überschreitet den Höchstwert nie. Einzige
|
||||||
|
Ausnahme ist ein Einzelobjekt, das allein größer ist; es erhält einen
|
||||||
|
eigenen Stromkreis und wird als Überschreitung markiert.
|
||||||
|
|
||||||
|
### 11.6 Automatisch aufteilen
|
||||||
|
|
||||||
|
„Automatisch aufteilen …“ verteilt die ausgewählten Steckdosen-Objekte auf
|
||||||
|
neue Stromkreise einer gewählten, kategoriegleichen Stromkreisgruppe.
|
||||||
|
Nicht-Steckdosen in der Auswahl bleiben unberührt und werden genannt. Der
|
||||||
|
Höchstwert ist mit dem Projektwert vorbelegt und für diesen Lauf änderbar;
|
||||||
|
ohne Projektwert muss er eingegeben werden.
|
||||||
|
|
||||||
|
Raumweises Verfahren:
|
||||||
|
|
||||||
|
1. Räume nach Raumnummer (natürliche Sortierung), Objekte ohne Raum zuletzt;
|
||||||
|
innerhalb eines Raums nach Worksharing-ID.
|
||||||
|
2. Passt ein Raum vollständig in die Restkapazität des aktuellen neuen
|
||||||
|
Stromkreises, kommt er dorthin.
|
||||||
|
3. Sonst beginnt ein neuer Stromkreis, sofern der Raum vollständig in einen
|
||||||
|
leeren Stromkreis passt.
|
||||||
|
4. Sonst wird der Raum objektweise auf so viele neue Stromkreise verteilt wie
|
||||||
|
nötig, ohne ein Objekt zu teilen.
|
||||||
|
|
||||||
|
Das Ergebnis ist ein Plan, keine Übernahme. Er erscheint im Zielbereich und
|
||||||
|
kann per Drag-and-drop nachbearbeitet werden. Vorhandene Stromkreise werden
|
||||||
|
nicht automatisch aufgefüllt.
|
||||||
|
|
||||||
|
### 11.7 Zuordnungsplan und Übernahme
|
||||||
|
|
||||||
|
- Der Dialog sammelt alle Zuweisungen lokal. Nichts wird geschrieben, bevor
|
||||||
|
„Übernehmen“ bestätigt ist. Schließen mit offenem Plan fragt nach.
|
||||||
|
- Vor der Übernahme listet eine Prüfansicht jeden Planungswert-Konflikt
|
||||||
|
(Row, Feld, Row-Wert, Objektwert) und jede Höchstwert-Überschreitung. Beide
|
||||||
|
verlangen eine ausdrückliche Bestätigung. Ohne Konflikte und
|
||||||
|
Überschreitungen genügt „Übernehmen“.
|
||||||
|
- Die Übernahme ist ein atomarer Command
|
||||||
|
`external-object.apply-assignment-plan` mit `expectedRevision` und genau
|
||||||
|
einem Undo-Schritt. Er enthält:
|
||||||
|
- die vollständigen Snapshots neuer Stromkreise (stabile UUID,
|
||||||
|
Gruppe, BMK, abgeleitete Spannung, erforderlicher Standardschutz);
|
||||||
|
- die vollständigen Snapshots neuer Rows;
|
||||||
|
- die erwarteten Vorher-Zustände aller betroffenen Rows und Objekte;
|
||||||
|
- alle Link-Übergänge, die ausdrücklich bestätigten Konflikte und die
|
||||||
|
Mengenänderungen bestehender Rows.
|
||||||
|
- BMKs neuer Stromkreise werden beim Planen einmal vergeben: höchste
|
||||||
|
Nummer der Gruppe + 1, + 2, … ohne Lückenfüllung. Redo rechnet sie nicht neu.
|
||||||
|
- Die Inverse entfernt nur unverändert gebliebene erzeugte Stromkreise und
|
||||||
|
Rows und stellt Links und Mengen exakt wieder her.
|
||||||
|
- Bei 409 lädt der Dialog neu, prüft den Plan erneut und entfernt nicht mehr
|
||||||
|
gültige Zuweisungen mit Hinweis; gültige bleiben erhalten.
|
||||||
|
|
||||||
|
### 11.8 Verknüpfte Objekte an der Row
|
||||||
|
|
||||||
|
- An Rows zeigt das Badge „Revit N“ die Zahl verknüpfter Objekte. Ein Klick
|
||||||
|
öffnet eine Liste mit Worksharing-ID, Familie, Raum und wirksamer Menge.
|
||||||
|
- In der Liste lassen sich einzelne Objekte oder alle ausdrücklich lösen.
|
||||||
|
Gelöste Objekte erhalten die aktuellen Row-Werte als Planungswerte und
|
||||||
|
Overrides.
|
||||||
|
- „Anzahl“ bleibt gesperrt; „Anz. manuell“ und „Anz. Revit“ gelten wie
|
||||||
|
bisher.
|
||||||
|
|
||||||
Wird eine Row, ein Circuit oder eine Gruppe mit verknüpften Revit-Objekten
|
Wird eine Row, ein Circuit oder eine Gruppe mit verknüpften Revit-Objekten
|
||||||
gelöscht, zeigt die UI vor Bestätigung:
|
gelöscht, zeigt die UI vor Bestätigung:
|
||||||
|
|
|
||||||
|
|
@ -19,6 +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. |
|
| 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. |
|
| 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. |
|
| 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. |
|
||||||
|
|
||||||
## R0 – Audit
|
## R0 – Audit
|
||||||
|
|
||||||
|
|
@ -223,7 +227,56 @@ ist für alle vollständigen External-Model-Zustandspfade behoben. Messwerte und
|
||||||
Abnahme stehen in [R10-Abnahme](revit-excel-r10-validation.md). Phase 14 ist
|
Abnahme stehen in [R10-Abnahme](revit-excel-r10-validation.md). Phase 14 ist
|
||||||
damit abgeschlossen.
|
damit abgeschlossen.
|
||||||
|
|
||||||
## Pflichtprüfungen je Paket R1–R10
|
## R11–R14 – Zuordnungsdialog und Steckdosen-Höchstwert
|
||||||
|
|
||||||
|
Fachgrundlage: Abschnitte 5, 6 und 11 der
|
||||||
|
[Anforderungen](revit-excel-integration-requirements.md), Stand 30.10.2026.
|
||||||
|
Anlass: Der R7-Drawer kann gleichartige Objekte eines Raums nur gesamt oder
|
||||||
|
einzeln zuordnen. Steckdosen müssen objektweise und unter einem
|
||||||
|
auftraggeberabhängigen Höchstwert auf mehrere Stromkreise verteilt werden.
|
||||||
|
|
||||||
|
### R11 – Einstellungen
|
||||||
|
|
||||||
|
- Projekteinstellung `maxSocketsPerCircuit`: Migration `0018` (nullable
|
||||||
|
Spalte), `project.update-settings` Schema-Version 4 (1–3 bleiben ausführbar
|
||||||
|
und lassen den Wert unverändert), Snapshot-Schema 11 (1–10 mit `null`
|
||||||
|
hochgestuft), Projekttransfer, PUT-Route und Projekteinstellungsdialog;
|
||||||
|
- `ExternalModelConfiguration` Schema-Version 2 mit `deviceTypes[].isSocket`;
|
||||||
|
Version 1 wird beim Lesen aus den `socketCount`-Regeln hochgestuft
|
||||||
|
(gespeicherte Konfiguration, Importbatch-Kopien, History-Commands,
|
||||||
|
Snapshots, Transfer);
|
||||||
|
- Revit-Einstellungen: Merkmal „Steckdose“ je Geräteart; Wizards belegen es
|
||||||
|
vor.
|
||||||
|
|
||||||
|
### R12 – Planungsmodul
|
||||||
|
|
||||||
|
- reines, importfreies Modul für Client und Server;
|
||||||
|
- Row-Bildung im Zielstromkreis, Belegung je Stromkreis, Konfliktliste,
|
||||||
|
Kategorieprüfung und raumweise Aufteilung nach Anforderung 11.6;
|
||||||
|
- fokussierte Unit-Tests, u. a.: 8 Doppelsteckdosen bei Grenze 8 ergeben
|
||||||
|
zwei Stromkreise mit je 4 Objekten; Räume werden nur bei Bedarf geteilt;
|
||||||
|
ein Einzelobjekt über der Grenze erhält einen eigenen Stromkreis.
|
||||||
|
|
||||||
|
### R13 – Command
|
||||||
|
|
||||||
|
- `external-object.apply-assignment-plan` über die gemeinsame
|
||||||
|
Project-Command-Transaktionsgrenze und
|
||||||
|
`external-object-assignment.persistence.ts`;
|
||||||
|
- serverseitige Neuprüfung mit dem R12-Modul; Konflikte und Überschreitungen
|
||||||
|
nur mit ausdrücklich gelisteter Bestätigung;
|
||||||
|
- strikte zod-Eingabe, Routentests (nicht angemeldet, fremdes Objekt,
|
||||||
|
ungültige Eingabe), SQLite-Commit/Rollback, Undo/Redo nach Neustart.
|
||||||
|
|
||||||
|
### R14 – Editor-UI
|
||||||
|
|
||||||
|
- Zuordnungsdialog nach Anforderung 11.2–11.7 mit lokalem Plan, Drag-and-drop,
|
||||||
|
Tastaturalternative, Prüfansicht und 409-Neuprüfung;
|
||||||
|
- Kontextmenü-Einstieg mit vorausgewähltem Ziel;
|
||||||
|
- Row-Badge öffnet die Objektliste mit Einzel- und Gesamt-Lösen;
|
||||||
|
- R7-Drawer und Grid-Drop für Revit-Objekte entfernen; AGENTS.md und
|
||||||
|
Architekturdokumentation nachziehen.
|
||||||
|
|
||||||
|
## Pflichtprüfungen je Paket R1–R14
|
||||||
|
|
||||||
```text
|
```text
|
||||||
fokussierte Tests
|
fokussierte Tests
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue