Gruppieren + Gruppe betreten/verlassen (Vectorworks-artig)
Ctrl/Cmd+G fasst die Auswahl zu einer Gruppe zusammen (Elemente + bereits gewählte Gruppen werden dabei verschachtelt statt vermischt); Ctrl/Cmd+ Shift+G löst eine Gruppenhülle auf (ein Level, Untergruppen bleiben bestehen). Eine Gruppe ist reine Mitgliedschaft (IDs je Elementart) ohne eigenes Transform-Objekt — Verschieben/Kopieren/Löschen/Feld brauchen dadurch keine Sonderbehandlung, eine Gruppen-Auswahl ist einfach eine grosse Mehrfachauswahl. Klick auf ein gruppiertes Element wählt die ganze Gruppe (Einzelklick UND Auswahlrahmen); Doppelklick betritt sie (Isolation): alles ausserhalb wird gedimmt und lässt sich nicht mehr anwählen, ein Knopf oben links verlässt sie wieder. Verschachtelte Gruppen: innerhalb einer betretenen Gruppe sind nur ihre direkten Untergruppen als Gruppe anwählbar, ihre direkten Mitglieder einzeln editierbar.
This commit is contained in:
@@ -2232,6 +2232,27 @@ export interface LayoutFolder {
|
||||
kind?: "layout" | "master";
|
||||
}
|
||||
|
||||
/**
|
||||
* Gruppe (Vectorworks-artig) — reine Mitgliedschaft je Elementart, siehe
|
||||
* {@link Project.groups}. Alle ID-Listen sind additiv; ein Element gehört
|
||||
* NIE zu mehr als einer Gruppe auf derselben Ebene (das Werkzeug/der Befehl
|
||||
* stellt das beim Gruppieren sicher, nicht das Modell selbst).
|
||||
*/
|
||||
export interface Group {
|
||||
id: string;
|
||||
name?: string;
|
||||
wallIds: string[];
|
||||
drawingIds: string[];
|
||||
ceilingIds: string[];
|
||||
roomIds: string[];
|
||||
stairIds: string[];
|
||||
columnIds: string[];
|
||||
roofIds: string[];
|
||||
openingIds: string[];
|
||||
/** Verschachtelte Gruppen (diese Gruppe enthält andere Gruppen als Ganzes). */
|
||||
groupIds: string[];
|
||||
}
|
||||
|
||||
export interface Project {
|
||||
id: string;
|
||||
name: string;
|
||||
@@ -2318,6 +2339,18 @@ export interface Project {
|
||||
* Projekte/Tests ohne `columns` gültig bleiben (Default: leer behandeln).
|
||||
*/
|
||||
columns?: Column[];
|
||||
/**
|
||||
* Gruppen (Vectorworks-artig: Cmd+G fasst die Auswahl zu einer Einheit
|
||||
* zusammen; Doppelklick betritt die Gruppe zum Bearbeiten, alles andere
|
||||
* wird dabei gedimmt/gesperrt — s. `state/useGroupState.ts`). Eine Gruppe
|
||||
* ist reine MITGLIEDSCHAFT (IDs je Elementart, wie eine gespeicherte
|
||||
* Mehrfachauswahl) — kein eigenes Geometrie-/Transform-Objekt, damit
|
||||
* Verschieben/Kopieren/Löschen weiterhin dieselbe Maschinerie nutzen wie
|
||||
* eine normale Mehrfachauswahl. `groupIds` erlaubt Verschachtelung (eine
|
||||
* Gruppe kann andere Gruppen enthalten). Optional, damit bestehende
|
||||
* Projekte/Tests ohne `groups` gültig bleiben (Default: leer behandeln).
|
||||
*/
|
||||
groups?: Group[];
|
||||
/**
|
||||
* Bibliothek parametrischer Wand-Regelwerke. Optional, damit bestehende
|
||||
* Projekte ohne `parametricWalls` gültig bleiben (Default: leer behandeln).
|
||||
|
||||
Reference in New Issue
Block a user