--- 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 >}}