--- title: Smart-Elemente linkTitle: Smart-Elemente weight: 2 --- Smart-Elemente sind parametrische Bauteile mit dem **Source ↔ Volume Pattern**: eine editierbare Source-Geometrie und ein automatisch generiertes Volumen. ## Pattern ```text Source-Geometrie (vom User editiert) │ ▼ Regeneration bei Change Volume (Brep, vom Plugin verwaltet) ``` Wird die Source verschoben oder verformt, regeneriert das Volumen automatisch — Wand-Joints, Decken-Aussparungen und Öffnungs-Cutouts werden mitgeführt. ## Bauteil-Typen ### Wände (Wand-System v1) | Source | Volume | |-------------------------|-----------------------------------------------------| | Polyline (mit Bögen) | Brep mit Dicke × Höhe, Geschoss-OKFF als Basis | **Polyline-Achse statt Einzel-Segmente:** Eine Wand ist ein zusammenhängender Polyline-Strang — gerade Teilstrecken, Bogen-Segmente und Knicke gehören zur selben Source. Joints zwischen Polylines werden weiterhin als Miter / T-Junction gerechnet, aber Knicke innerhalb einer Wand brauchen kein eigenes Joint-Setup mehr. **Chain-Anchor:** Die Polyline trägt einen stabilen Anker auf einem festgelegten Knoten. Bei Modifikationen am Strang (verschieben, verlängern, Knoten einfügen) bleibt die Wand-Identität an diesem Anker — Material, UserStrings und Joint-Verknüpfungen wandern mit. **Native Rhino-Grips:** Knoten der Polyline-Achse erscheinen direkt als Rhino-Grips. Verschieben eines Knotens triggert Volume-Regeneration plus Joint-Re-Calc in einem Idle-Tick — keine separate Edit-Mode-UI nötig. **Cmd+Z stabil:** Undo/Redo über alle Joint-Operationen ist garantiert konsistent. Der Joint-Cache wird über die Polyline-Achse rekonstruiert, nicht aus dem stale Pre-Undo-State. **Joint-Cache** pro Geschoss (`_JOINTS_CACHE_KEY`), invalidiert bei Add/Delete und nach Polyline-Edits über den Grip-Handler. **Wand-Typen:** Tragwand · Trennwand · Brandwand · Aufschüttung **Material-Cache:** Hex → MaterialIndex, stale-Check beim Lesen — der Cache wird beim Material-Delete in Rhino automatisch invalidiert (siehe [Materialien](../materialien)). ### Decken & Dächer | Source | Volume | |------------|---------------------------------------------------------| | Outline | Brep-Extrusion mit konstanter Stärke, OKFF + Geschoss-Höhe | - Aussparungen für Schächte als Sekundär-Curves - Dächer mit Neigung (Pultdach, Satteldach, Walmdach) ### Öffnungen (Fenster / Türen) | Source | Volume | |---------|-----------------------------------------------------| | Punkt | Rahmen + Sims + Flügel, schneidet Wand-Volumen aus | - Bibliothek mit Standard-Typen (Holz / Aluminium / Kunststoff) - Brüstungshöhe und Sturzhöhe pro Element parametrisch - Cutout im Wand-Volumen wird automatisch nachgeführt ### Treppen Geometrie-Typen: - **Gerade Treppe** — Anfangs-/Endpunkt, Steigung - **L-Treppe** — Dreipunkt, Zwischenpodest automatisch - **Wendeltreppe** — Zentrum, Radius, Steigungswinkel ### Tragwerk - **Stützen** — Punkt, Profil (Rechteck / Rund / I) - **Träger** — Linie, I-Profil mit Schenkel-Höhe und -Breite - **I-Profile** — Standardisierte Querschnitte (HEA / HEB / IPE) ## UI-Workflow Im **ELEMENTE**-Panel: 1. Bauteil-Typ wählen (Wand, Decke, Öffnung, …) 2. Variante wählen (Tragwand, Pultdach, Holzfenster, …) 3. Source in Rhino zeichnen 4. Volumen erscheint sofort ## Properties Das **ELEMENTE-PROPERTIES**-Panel zeigt für die Selektion: - Element-Typ und -Variante - Dicke / Höhe / Position - Geschoss-Zuordnung - UserStrings (`dossier_element_id`, `dossier_element_type`) Änderungen werden direkt geschrieben — keine Apply-Button-Logik. ## Übersicht Das **ELEMENTE-ÜBERSICHT**-Panel listet alle Smart-Elemente im Dokument tabellarisch — gefiltert nach Geschoss, Typ und Material. Ideal für Mengen-Audits und Konsistenz-Checks. {{< callout type="warning" >}} `elemente.py` ist **7'244 LOC** und enthält BIM-Logik aus echten Projekten. Nicht ohne expliziten Auftrag und Test-Plan refaktorisieren. {{< /callout >}}