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: Material-Library
linkTitle: Materialien
weight: 5
---
Die Material-Library lebt im **PROJECT-SETTINGS**-Tab "Materialien" und folgt einem **ArchiCAD-style List/Detail-Layout**: links die Material-Liste, rechts der Detail-Editor für die aktive Auswahl.
## List/Detail-Workflow
{{% steps %}}
### Material in der Liste anlegen
Plus-Button → neues Material mit Default-Werten. Liste wird sofort aktualisiert, Thumbnail erscheint.
### Detail editieren
Rechts werden alle Eigenschaften der aktiven Auswahl gezeigt: Name, Farbe, Rauheit, Metallic, Texturen, Linetype-Binding. Änderungen werden live geschrieben — kein Apply-Button.
### Verwendung im Modell
Material wird im ELEMENTE-Panel pro Smart-Element ausgewählt. Auto-Regen aktualisiert die Rhino-Rendermaterials und triggert eine View-Aktualisierung.
{{% /steps %}}
## PBR-Materialien
Jedes Material trägt:
| Eigenschaft | Beschreibung |
|---------------|-------------------------------------------------------|
| Name | Frei vergeben — `Sichtbeton fein`, `Eiche geölt` |
| Albedo | Basis-Farbe (Hex) oder Albedo-Textur (PNG/JPG) |
| Roughness | Glanz-Schärfe, 0 (Spiegel) → 1 (matt) |
| Metallic | Dielektrikum vs. Metall, 0 → 1 |
| Normal-Map | Optional — PNG für Surface-Detail |
| Linetype | Gebundener Linetype für Schnittlinien (Bezug zu .lin) |
Rhino-Renderer (Cycles) liest die PBR-Daten direkt — kein separater Material-Editor nötig.
## Material/Ebene-Separation
Eine bewusste DOSSIER-Konvention:
```text
Material ──────▶ Wie sieht's aus? (Albedo, Roughness, …)
Layer ──────▶ Wozu gehört's? (10_GRUNDRISSE::EG::20_WAENDE)
```
Die beiden bleiben **getrennt** — ein Material kann auf vielen Layern verwendet werden, ein Layer kann viele Materialien tragen. Das vermeidet die typische Rhino-Falle, in der Layer-Farbe und Material-Farbe konkurrieren.
## Auto-Regen
Wird ein Material editiert (Farbe geändert, Textur ersetzt), regenerieren sich alle Smart-Elemente, die es verwenden, automatisch:
1. `materialien_bridge` schreibt das neue PBR-Set in Rhinos `RenderMaterial`-Tabelle
2. `elemente_bridge._regenerate_all_with_material(material_id)` läuft über alle Wände, Decken, … mit diesem Material
3. Joint-Cache wird invalidiert (Material kann die Lineweight bei Anschnitten beeinflussen)
Spürbare Latenz < 200 ms für Projekte unter 500 Smart-Elementen.
## Linetypes (.lin-Import)
Der **Linientypen**-Tab in PROJECT-SETTINGS importiert AutoCAD-kompatible `.lin`-Files:
```text
*BORDER,Border __ __ . __ __ . __ __ . __ __ . __ __ .
A,.5,-.25,.5,-.25,0,-.25
```
Der Parser zerlegt die Sequenz und schreibt eine native `Rhino.DocObjects.Linetype` ins Dokument. Skalierung wird projektweit gesetzt und folgt dem aktiven Massstab (siehe [Massstab](../massstab)).
Pattern-Editor visualisiert die Sequenz mit Drag-Handles für Strich/Lücke-Längen — `.lin`-Import und Editor schreiben in denselben Datentyp, sind also austauschbar.
## Hatches (.pat-Import)
Der **Schraffuren**-Tab importiert AutoCAD-Hatches:
```text
*ANSI31,ANSI Iron, Brick, Stone masonry
45,0,0,0,.125
```
Pattern werden als `Rhino.DocObjects.HatchPattern` registriert und stehen Section-Styles, Layer-Properties und Gestaltung-Panel direkt zur Verfügung.
**Pattern + Scale + Rotation-Signatur** wird im GESTALTUNG-Panel zur automatischen Layer-Erkennung verwendet (siehe [Gestaltung](../gestaltung)).
## Material-Cache
Beim Lesen wird über eine **Hex → MaterialIndex-Map** gecacht. Stale-Check bei jedem Read:
- Existiert der Material-Index noch im Rhino-Doc?
- Hat sich der Hex-Wert verändert?
- Wurde das Material extern via Rhinos Material-Editor gelöscht?
Bei Stale wird die Map neu aufgebaut. Manuell triggerbar via [Werkzeuge → Material-Cache leeren](../werkzeuge).
{{< callout type="info" >}}
Texturen werden **relativ zur `.3dm`** referenziert. Wenn das Projekt verschoben wird, müssen Texturen mitwandern — Dossier zeigt fehlende Texturen mit einem warnenden Placeholder-Thumbnail in der Library-Liste an.
{{< /callout >}}