Ebenen: Plangrafik 60 → 80, RAEUME/GF/AGF auf 60/61/62

Doppelbelegung Code 60: alte Konvention "Plangrafik" steht im Weg fuer
die neuen Raum-Layer (RAEUME 60, GF 61, AGF 62). Wenn ein Doc beides
hat, fiel die Auto-Add-Logik in _find_ebene_sublayer_name aus → Raeume
landeten auf Rhino-Layer "60_RAEUME" der aber im Dossier-Ebenen-Panel
nie auftauchte (dort stand 60 = Plangrafik).

Fix in zwei Teilen:

1) Frontend-Default-Schema (App.jsx INITIAL_EBENEN):
   - 60: RAEUME (neu, fuer HNF/NNF/VF/FF)
   - 61: GF (Geschossflaeche)
   - 62: AGF (Aussengeschossflaeche)
   - 80: Plangrafik (verschoben von 60)

2) One-shot Migration in elemente._migrate_plangrafik_60_to_80_once():
   - Detect: dossier_ebenen hat code=60 + name=Plangrafik
   - Action: code 60 → 80, RAEUME/GF/AGF auf 60/61/62 hinzufuegen
   - Rhino-Layer rename: alle "60_Plangrafik" Layer → "80_Plangrafik"
   - build_layers + broadcast_state → Ebenen-Manager UI aktualisiert
   - Sticky-Flag verhindert Re-Run

Plus kleinerer UX-Fix: Skala-Dropdown-Labels gekuerzt
("fix (m)" / "massstaeblich (mm)" statt langer Beschreibungen).
This commit is contained in:
2026-05-27 01:00:33 +02:00
parent 2a838aee93
commit 1c3b0f3919
3 changed files with 111 additions and 3 deletions
+7 -1
View File
@@ -23,7 +23,13 @@ const INITIAL_EBENEN = [
{ code: '31', name: 'Dächer', color: '#7a4a3a', lw: 0.35, visible: true, locked: false },
{ code: '35', name: 'Träger', color: '#a87858', lw: 0.50, visible: true, locked: false },
{ code: '50', name: 'Text', color: '#d0d0d0', lw: 0.13, visible: true, locked: false },
{ code: '60', name: 'Plangrafik', color: '#c0a040', lw: 0.13, visible: true, locked: false },
// Raum-Familie: RAEUME (Nutzflaechen HNF/NNF/VF/FF) + GF (Geschossflaeche
// gross) + AGF (Aussengeschossflaeche). Wird vom Elemente-Modul auto-
// erzeugt sobald der erste Raum mit entsprechendem SIA-Tag entsteht.
{ code: '60', name: 'RAEUME', color: '#7a8a9a', lw: 0.13, visible: true, locked: false },
{ code: '61', name: 'GF', color: '#a0a0a0', lw: 0.18, visible: true, locked: false },
{ code: '62', name: 'AGF', color: '#90b090', lw: 0.13, visible: true, locked: false },
{ code: '80', name: 'Plangrafik', color: '#c0a040', lw: 0.13, visible: true, locked: false },
{ code: '90', name: 'Referenzen', color: '#585860', lw: 0.13, visible: true, locked: false },
{ code: '99', name: 'Konstruktion', color: '#404048', lw: 0.13, visible: true, locked: false },
]
+6 -2
View File
@@ -1109,8 +1109,12 @@ function RaumProperties({ raum, geschosse, onUpdate, onDelete, hatchPatterns, fo
onChange={(e) => onUpdate({ txtModus: e.target.value })}
title="fix: Hoehe in m via Oberleiste · masstab: Paper-mm via Massstab"
style={{ flex: 1, fontSize: 11 }}>
<option value="fix">fix · Hoehe = Oberleiste-Wert (m)</option>
<option value="masstab">masstab · skaliert mit Plan-Massstab</option>
<option value="fix" title="Texthöhe in Meter via Oberleiste">
fix (m)
</option>
<option value="masstab" title="Texthöhe als Paper-mm, skaliert mit aktivem Plan-Massstab">
massstäblich (mm)
</option>
</select>
</div>