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:
@@ -1721,6 +1721,36 @@ export interface Column {
|
||||
* Kategorie-Farbe.
|
||||
*/
|
||||
color?: string;
|
||||
/**
|
||||
* Attribut-Override der Muster-/Schraffurfarbe (Vordergrund) DIESER Stütze.
|
||||
* `undefined` = „Nach System" (erben → Component.foreground), analog `Wall.
|
||||
* foreground`.
|
||||
*/
|
||||
foreground?: string;
|
||||
/**
|
||||
* Attribut-Override der Füllfarbe (Hintergrund/Poché) DIESER Stütze.
|
||||
* `undefined` = „Nach System" (neutrale SIA-Poché HATCH_INK/HATCH_PAPER je
|
||||
* nach Schraffur-Muster), analog `Wall.background`.
|
||||
*/
|
||||
background?: string;
|
||||
/**
|
||||
* Attribut-Override der Strichstärke (mm Papier) DIESER Stütze. `undefined`
|
||||
* = „Nach System" (erben → `strokeWeightSource`), analog `Wall.strokeWeight`.
|
||||
*/
|
||||
strokeWeight?: number;
|
||||
/**
|
||||
* Attribut-Override der Schnitt-Schraffur (Hatch Manager) DIESER Stütze.
|
||||
* `undefined` = „Nach System" (erben → `hatchSource`), analog `Wall.hatchId`.
|
||||
*/
|
||||
hatchId?: string;
|
||||
/** Quelle des Vordergrunds, wenn kein explizites `foreground` gesetzt ist — analog `Wall.foregroundSource`. */
|
||||
foregroundSource?: AttributeSource;
|
||||
/** Quelle des Hintergrunds, analog {@link Column.foregroundSource}. */
|
||||
backgroundSource?: AttributeSource;
|
||||
/** Quelle der Strichstärke, analog {@link Column.foregroundSource}. */
|
||||
strokeWeightSource?: AttributeSource;
|
||||
/** Quelle der Schraffur, analog {@link Column.foregroundSource}. */
|
||||
hatchSource?: AttributeSource;
|
||||
}
|
||||
|
||||
// ── Kontext-Geometrie (importiert / abgeleitet, NICHT semantisch) ───────────
|
||||
|
||||
Reference in New Issue
Block a user