Initial commit: DOSSIER Hugo website

This commit is contained in:
2026-05-26 11:23:18 +02:00
commit 53c0532f60
417 changed files with 32891 additions and 0 deletions
+101
View File
@@ -0,0 +1,101 @@
---
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 >}}