Editieren im Schnitt: Cut-Polygone tragen die Quell-Element-Id

toSection loest je Cut-Band die Quell-Element-Id (Wand/Decke/Dach) ueber die
Besitzer-Listen auf (cp.sourceId) und propagiert sie durch Schicht-Zerlegung,
Terminierung und Boolean-Dominanz. generateSectionPlan schreibt sie je
component.kind als wallId/ceilingId/roofId ans Plan-Polygon — ein Klick im
Schnitt waehlt damit exakt jenes Bauteil im Modell (bestehende PlanView-Pick-/
Highlight-Logik greift), das Attribut-Panel editiert OK/UK/Hoehe, der Schnitt
rechnet neu. Tests fuer Mapping + sourceId-Propagation.
This commit is contained in:
2026-07-11 00:30:01 +02:00
parent 522727a003
commit 14c9907579
4 changed files with 89 additions and 0 deletions
+9
View File
@@ -995,6 +995,12 @@ export function generateSectionPlan(output: SectionOutput, mono = false): Plan {
const monoFill = solid ? HATCH_INK : HATCH_PAPER;
const monoHatch =
solid ? hatch : hatch.pattern !== "none" ? { ...hatch, color: SECTION_INK } : hatch;
// Auswahl im Schnitt: das QUELL-Element (via cp.sourceId + component.kind) als
// wallId/ceilingId/roofId ans Polygon hängen — so wählt ein Klick auf das
// geschnittene Bauteil im Schnitt exakt jene Wand/Decke/Dach im Modell, und
// die bestehende PlanView-Pick-/Highlight-Logik greift ohne Sonderfall.
const kind = cp.component.kind;
const sourceId = cp.sourceId;
primitives.push({
kind: "polygon",
pts,
@@ -1002,6 +1008,9 @@ export function generateSectionPlan(output: SectionOutput, mono = false): Plan {
stroke: SECTION_INK,
strokeWidthMm: SECTION_CUT_OUTLINE_MM,
hatch: mono ? monoHatch : hatch,
wallId: kind === "wall" ? sourceId : undefined,
ceilingId: kind === "slab" ? sourceId : undefined,
roofId: kind === "roof" ? sourceId : undefined,
});
}