Files
DOSSIER-STANDALONE/docs/design/dossier-feature-audit.md
T
karim 7c02ea0498 Zeilenhöhe-Regler statt "+ Text"; Linienstil editierbar; DOSSIER-Audit gesichert
- "+ Text"-Knopf entfernt (war ohnehin immer deaktiviert, kein Werkzeug
  dahinter — Text wird ein eigenständiges Zeichenwerkzeug, AUDIT B1).
  An seiner Stelle ein Zeilenhöhe-Regler (Stepper, Vielfaches der
  Schriftgrösse) — neues Paragraph.lineHeight, durchgereicht bis in
  HTML-Vorschau (line-height) und SVG-Render (kumulierte Zeilen-
  Vorschübe statt festem lineGap).
- Linienstil im Attribute-Panel war rein informativ (kein Setter im
  Host-Kontrakt). onSetSelectionLineStyle ergänzt (nur Drawing2D),
  jetzt echtes Dropdown statt "—"-Anzeige.
- docs/design/dossier-feature-audit.md: der ausführliche A1-A6/B1-B4/
  C1-C3/D1-D3/E-Auditbericht aus einer alten Session gesichert (lag
  bisher nur im Transkript, nicht im Repo) — Quelle der HANDOVER.md-
  AUDIT-Kürzel.
2026-07-04 05:36:18 +02:00

5.3 KiB
Raw Blame History

DOSSIER-Feature-Audit (A1A6, B1B4, C1C3, D1D3, E)

Ausführliche Fassung des Audits, auf das HANDOVER.md Backlog-Punkt 9 nur noch mit Einzeilern verweist. Ursprünglich von einem Opus-Subagent erarbeitet, der das DOSSIER-Rhino-Referenzrepo (/tmp/dossier-ref) gegen den aktuellen Browser-Port abgeglichen hat — das Ergebnis lag bisher nur in einem Session-Transkript, nicht im Repo. Belege (Datei:Zeile) beziehen sich auf /tmp/dossier-ref/rhino/*.py.

Status-Symbole: nicht übernommen · 🟡 teilweise übernommen.

A — Grösserer Funktionsumfang

A1 · Grafische Overrides — Regel-Engine (overrides.py:7-40) ArchiCAD/Vectorworks-Stil: Regeln der Form condition{type: layer_name|user_string| object_name, operator: equals|contains|starts_with|not_equals, value, key} → actions{color, lineweight, linetype}, additiv angewendet, oberste Regel gewinnt, reversibel. Cross-Doc-Presets + Rule-Templates (list_presets:147, list_rule_templates:218). Der Port hat nur manuelle Per-Instanz-Farbe (By-Layer/ By-Object/eigener Wert, kein Regelwerk). Wert: enorm für Architektur-Pläne (Bestand grau, Brandabschnitte, Bauphasen farblich markieren). Aufwand: M-L.

A2 · Ausschnitte / View-Snapshots (ausschnitte.py:466-531) Benannte, gespeicherte Ansichten, die Kamera-Zustand + Layer-Sichtbarkeit + Massstab + Detailgrad einfangen und wiederherstellen; organisiert in Ordnern + Presets (_capture_camera:78, _capture_layers:157, _capture:466). Wert: zentral für Wiederverwendbarkeit und Voraussetzung für A3. Aufwand: L.

A3 · Print-Layout-Blätter (layouts.py:7-8) Layout-Seiten mit mehreren Details, jedes Detail an einen Ausschnitt-Snapshot gebunden (_BIND_KEY:28), Papierformate A4/A3, Ordnerstruktur, PDF-Export pro Layout-Blatt. Der Port exportiert aktuell nur eine einzelne Zeichnung nach PDF. Aufwand: L, hängt an A2.

A4 · Tragwerk-Elemente (elemente.py) Stütze, Träger, Unterzug, I-Profil als eigene Elementtypen. Der Port kennt nur Wand/Decke/Öffnung/Treppe/Raum. Wert: vervollständigt den BIM-Elementsatz. Aufwand: M je Typ.

A5 · 🟡 Öffnungen viel reicher (elemente.py:59-68) Mehrere Flügel (OEFF_FLUEGEL), Sims innen+aussen mit eigenen Stilen (SIMS_AUS/SIMS_IN), Glas-Toggle (OEFF_GLAS), Rahmen-Lage aussen/mittig/innen (RAHMEN_POS), Rahmen-Profilbreite/-tiefe, Detailgrad einfach/standard/detail = SIA-400-Darstellung (OEFF_DARSTELLUNG:68). Der Port hat nur swing/hinge/ frameDepth/frameThickness. Aufwand: M.

A6 · 🟡 Element-Schedule / Bauteilliste (elemente_uebersicht.py:45,214) Voller Element-Überblick + SIA-Flächenbilanz + CSV-Export (_export_bilanz:214). Der Port hat nur einen Raum-CSV-Export. Aufwand: M.

B — Werkzeuge & Objekt-Info

B1 · Text-Platzierungs-Werkzeug (text_create.py:972,847,105) On-Canvas-Text-Objekte als eigenständiges Zeichenwerkzeug (nicht nur Raumstempel): Textstile, Fonts, Rich-Text fett/kursiv/unterstrichen, Ausrichtung, Symbol-Einfügung, „auf Selektion anwenden". Der Port hat den Rich-Text-Editor (src/text/RichTextEditor.tsx) bereits, aber kein Platzierungs-Werkzeug, um damit ein freistehendes Textobjekt zu zeichnen (Shortcut „1" ist bewusst noch unbelegt). Aufwand: M.

B2 · 🟡 Object-Info numerisch erweitern (dimensions.py:342-350,240,267) Position, Rotation um Z-Achse (_rotate_around_axis:240), Kreis-Radius, Linien-Länge (_set_line_length:267), Rechteck Breite/Höhe, Koordinatensystem World/CPlane, 9-Punkt-Referenz. Der Port kann nur per Anker-Griff skalieren. Aufwand: S-M.

B3 · Kamera-Presets + Nordwinkel (kamera.py:28,36-45,87) Nicht in HANDOVER.md gelistet, aber im Audit gefunden: Kardinal-Presets (N/O/S/W), Iso-Oktanten, Rotation um einen einstellbaren Nordwinkel (georeferenziert, relevant für Swisstopo-Kontext).

B4 · Massstab-Toolbar-Funktionen (nicht separat referenziert, Teil der Toolbar-Logik) — Zoom 1:1/auf Selektion, Linienstärken-Set, Grid/Ortho/ Referenzlinien-Toggles direkt aus der Symbolleiste.

C — Zusätzlich gefunden, nicht in HANDOVER.md

C1 · LoD pro Ansicht — Darstellung einfach/standard/detail je Ansicht umschaltbar (SIA-400-Detailgrad-Konvention), nicht nur global.

C2 · Override-Presets + Rule-Templates als Bibliothek — vertieft A1: die Regeln selbst sind wiederverwendbare, benannte Presets/Templates, nicht nur Ad-hoc-Zustand pro Dokument.

C3 · Mass-Style-Presets — Dezimalstellen/Rundung als benannte, wiederverwendbare Bemassungs-Stile.

D — Weitere Backlog-Ergänzungen aus dem Audit

D1 Per-Layout-PDF-Export (vertieft A3). D2 Bauteil-CSV mit vollem Element-Set (vertieft A6). D3 Komponenten-Thumbnails (visuelle Vorschau im Component-Manager).

E — Bewusst NICHT zu portieren

Rhino-/Windows-gebundene Implementierungsdetails ohne Browser-Äquivalent: Window-Layout-XML-Persistierung, Auto-DPI via CoreGraphics, Custom-Grips-Code (Rhino-SDK-spezifisch), nativer .3dm-Geometrie-Import.

Priorisierung (aus dem Original-Audit)

  1. A1 (Override-Regel-Engine)
  2. A2 (View-Snapshots)
  3. A3 (Print-Layout-Blätter)
  4. A5 (reichere Öffnungen)
  5. B1 (Text-Platzierungs-Werkzeug)
  6. A4 (Tragwerk)
  7. B2 (Object-Info numerisch)
  8. A6 (Bauteil-Schedule)

Siehe auch ROADMAP.md §11 für eine noch breitere, unabhängig entstandene Backlog-Liste (4-Wege-Survey über Bauteile/Darstellung/Pläne/Kontext) mit teilweiser Überschneidung.