Stütze (Column) bekommt dasselbe By-Layer/By-Object-Attributsystem wie
Wand/Decke Nutzer-Wunsch: "generell sollten alle BIM Teile also 3D die weiteren Attribute haben." Untersucht: Dach/Treppe/Raum/Öffnung haben HEUTE keine Poché-Füllung/Schraffur im Grundriss (reine Linien-/Symbol- Darstellung, bei Raum sogar bewusst so entschieden -- "keine Farbwäsche im Plan"); das Attribut-System dort anzuschliessen würde neue Poché-/Schraffur-Fähigkeiten erfordern, die es dort noch gar nicht gibt. Stütze dagegen hat bereits eine Poché UND nutzte bereits dieselben Resolver wie Wand/Decke (nur mit fest verdrahtetem override=source=undefined) -- Nutzer-Entscheidung nach Rückfrage: nur Stütze jetzt fertig verdrahten, der Rest bleibt vorerst unverändert. model/types.ts: Column bekommt dieselben acht Felder wie Wall (foreground/background/hatchId/strokeWeight × je einer *Source). plan/generatePlan/structures.ts (addColumnPoche): resolveHatchId/ resolveForeground lesen jetzt column.hatchId/column.hatchSource bzw. column.foreground/column.foregroundSource statt hartcodiertem undefined; neuer resolveBackground-Aufruf lässt einen expliziten Hintergrund-Override vor die neutrale SIA-Poché (Tinte/Papier je nach Schraffur-Muster) treten -- exakt das addWallPoche-Muster (bgOverride ?? neutrale Poché). plan/generatePlan.ts: die Strichstärke der Stütze lief bisher IMMER mit hartcodiertem override=source=undefined durch resolveStrokeWeight -- liest jetzt column.strokeWeight/column.strokeWeightSource. state/selectionInfo.ts (columnSelection): effectiveForeground/ effectiveBackground/effectiveHatchId analog wallSelection (Bauteil- Repräsentant ist hier `column.componentId` statt der äussersten Schicht); weightMm war bisher hart auf WALL_FALLBACK_MM gesetzt, läuft jetzt korrekt durch resolveStrokeWeight. panels/AttributesPanel.tsx: weightEditable/fillEditable/pocheEditable um `sel.kind === "column"` erweitert -- Stütze zeigt jetzt dieselben vier Attribut-Zeilen mit vollem 3-Quellen-Dropdown (Nach Ebene/Nach Bauteil/eigener Wert) wie Wand/Decke. +4 Tests (structures.column.test.ts: Default bleibt Bauteil-Schraffur, Hintergrund-Override greift, hatchSource "layer" nutzt die Kategorie- Schraffur, expliziter hatchId-Override gewinnt). tsc/vitest 938/938 grün.
This commit is contained in:
@@ -121,29 +121,36 @@ export function AttributesPanel() {
|
||||
// sind IMMER ein eigener Wert (kein 3-Quellen-Dropdown, keine Füllung/
|
||||
// Schraffur/Masse — s. Ausblendungen weiter unten).
|
||||
const isAnnotation = sel.kind === "layoutAnnotation";
|
||||
// Strichstärke: Wand/Decke/Drawing2D tragen einen eigenen Override
|
||||
// Strichstärke: Wand/Decke/Stütze/Drawing2D tragen einen eigenen Override
|
||||
// (`strokeWeight`/`weightMm`) + Quellen-Dropdown; andere Elementarten erben
|
||||
// stets aus der Kategorie (kein Setter im Kontrakt → nicht editierbar). Bei
|
||||
// Annotationen nur Linie/Rechteck (Text/Bild kennen keine Strichstärke).
|
||||
const weightEditable =
|
||||
sel.kind === "wall" ||
|
||||
sel.kind === "ceiling" ||
|
||||
sel.kind === "column" ||
|
||||
isDrawing ||
|
||||
(isAnnotation && (sel.annotKind === "line" || sel.annotKind === "rect"));
|
||||
// Schraffur: Wand/Decke (Schnitt-/Ansichts-Schraffur) oder geschlossene 2D-Form.
|
||||
// Schraffur: Wand/Decke/Stütze (Schnitt-/Ansichts-Schraffur) oder
|
||||
// geschlossene 2D-Form.
|
||||
const fillEditable =
|
||||
sel.kind === "wall" || sel.kind === "ceiling" || (isDrawing && sel.closed === true);
|
||||
// Vordergrund/Hintergrund (Muster-/Füllfarbe) tragen Wand, Decke und
|
||||
sel.kind === "wall" ||
|
||||
sel.kind === "ceiling" ||
|
||||
sel.kind === "column" ||
|
||||
(isDrawing && sel.closed === true);
|
||||
// Vordergrund/Hintergrund (Muster-/Füllfarbe) tragen Wand, Decke, Stütze und
|
||||
// geschlossene 2D-Formen als Override; `undefined` = „Nach System".
|
||||
const pocheEditable =
|
||||
sel.kind === "wall" ||
|
||||
sel.kind === "ceiling" ||
|
||||
sel.kind === "column" ||
|
||||
(isDrawing && sel.closed === true);
|
||||
|
||||
// Ein Drawing2D hat KEIN eigenes Bauteil (Component) — „Nach Bauteil" wäre
|
||||
// dort bedeutungslos (resolveForeground & Co. fallen dann auf gar keinen
|
||||
// Wert zurück, s. selectionInfo.ts `noComponent`). Nur Wand/Decke bieten
|
||||
// die Option daher an.
|
||||
// Wert zurück, s. selectionInfo.ts `noComponent`). Wand/Decke/Stütze haben
|
||||
// alle ein echtes Bauteil (Schicht-Component bzw. `Column.componentId`) und
|
||||
// bieten die Option daher an.
|
||||
const allowObjectSource = !isDrawing;
|
||||
|
||||
// Der Quellen-Dropdown (Nach Ebene/Nach Bauteil/eigener Wert), gemeinsam für
|
||||
|
||||
Reference in New Issue
Block a user