Wand-Stil im Elemente-Panel editierbar
Backend - wand-State enthaelt jetzt styleId (aus _KEY_WAND_STYLE_ID) - STATE-Payload sendet wandStyles (analog oeffStyles) - _update_wall_body handhabt styleId-Patch: bei Stil-Wechsel uebernimmt die dicke aus dem Stil (wenn nicht explizit im selben Patch ueberschrieben); wand_style_id wird per _attach_meta auf die Achse persistiert Frontend - WallProperties bekommt wandStyles-Prop + zeigt Stil-Picker zwischen Geschoss und Aufbau (nur wenn Stile vorhanden) - Dropdown: "kein Stil" + alle definierten Stile mit (dicke, prio) - PropertiesView + ElementeApp + ElementePropertiesApp propagieren wandStyles
This commit is contained in:
+19
-1
@@ -9315,6 +9315,7 @@ class ElementeBridge(panel_base.BaseBridge):
|
||||
"ok": ok,
|
||||
"layered": bool(meta.get("wand_layered", False)),
|
||||
"layers": meta.get("wand_layers", []),
|
||||
"styleId": meta.get("wand_style_id", "") or "",
|
||||
})
|
||||
elif meta["type"] == "decke_outline":
|
||||
uk, ok = _resolve_decke_z(doc, meta["geschoss"], meta["dicke"],
|
||||
@@ -9641,6 +9642,7 @@ class ElementeBridge(panel_base.BaseBridge):
|
||||
{"name": n, "color": m["color"]}
|
||||
for n, m in _get_all_materials(doc).items()],
|
||||
"oeffStyles": list_oeff_styles(doc),
|
||||
"wandStyles": _get_all_wand_styles(doc),
|
||||
"raumStempelStile": load_raum_stempel_stile(doc),
|
||||
"stempelStile": load_stempel_stile(doc),
|
||||
"treppe2DShow": _treppe_2d_enabled(doc),
|
||||
@@ -14296,6 +14298,21 @@ class ElementeBridge(panel_base.BaseBridge):
|
||||
attrs.LayerIndex = _ensure_layer(doc, _layer_path_decke(doc, geschoss_name))
|
||||
elif old_meta["type"] == "dach_outline":
|
||||
attrs.LayerIndex = _ensure_layer(doc, _layer_path_dach(doc, geschoss_name))
|
||||
# Wand-Stil: bei Stil-Wechsel uebernehmen wir dicke aus dem Style
|
||||
# (defaults), die Referenz bleibt erhalten. User kann dicke danach
|
||||
# individuell wieder ueberschreiben.
|
||||
if old_meta["type"] == "wand_axis" and "styleId" in p:
|
||||
new_style_id = p.get("styleId") or ""
|
||||
if new_style_id != old_meta.get("wand_style_id", ""):
|
||||
stl = _find_wand_style(doc, new_style_id)
|
||||
if stl is not None:
|
||||
# dicke nur uebernehmen wenn User nicht explizit dicke
|
||||
# ueberschrieben hat im selben Patch
|
||||
if "dicke" not in p:
|
||||
try: dicke = float(stl.get("dicke", dicke))
|
||||
except Exception: pass
|
||||
else:
|
||||
new_style_id = old_meta.get("wand_style_id", "")
|
||||
# Wenn layered + Layers gegeben: dicke aus Summe nachfuehren
|
||||
if wand_layered and wand_layers:
|
||||
try:
|
||||
@@ -14315,7 +14332,8 @@ class ElementeBridge(panel_base.BaseBridge):
|
||||
neigung_unten=neigung_unten, knick_h=knick_h,
|
||||
dach_variante=dach_variante,
|
||||
wand_layered=wand_layered,
|
||||
wand_layers=wand_layers if wand_layered else [])
|
||||
wand_layers=wand_layers if wand_layered else [],
|
||||
wand_style_id=new_style_id if old_meta["type"] == "wand_axis" else None)
|
||||
axis_obj.Attributes = attrs
|
||||
axis_obj.CommitChanges()
|
||||
# Volumen regenerieren (Layer ggf. anpassen)
|
||||
|
||||
Reference in New Issue
Block a user