# UX/UI-Patterns moderner Browser-CAD/BIM-Tools — Research & Leitplanken > Recherche für unser Browser-BIM (React + TS + Three.js, DOSSIER-Port, Wohnbau, > CH/SIA-Kontext). Ziel: konkrete, **übernehmbare** Interaktions- und UI-Muster. > Stand: 2026-06-29. > > Untersucht: **Arcol**, **Snaptrude**, **TestFit**, **Onshape** (Browser-CAD), > **Vectorworks** (Resource/Navigation-Modell), **Figma** (Canvas-Interaktion, > Inspector). Querschnitt: Snapping/Inferencing, Grip-Editing, perceived > performance, Command-Palette, Onboarding. > > Jeder externe Claim ist mit Quelle verlinkt. Am Ende: > **„Leitplanken für unsere UI"** — priorisierte Empfehlungen. --- ## 0. Kurzfazit (TL;DR) Die ganze Klasse moderner Browser-CAD/BIM-Tools konvergiert auf ein **gemeinsames Set von Mustern**, das wir fast 1:1 übernehmen sollten: 1. **Ein Modell, viele synchrone Sichten** (2D-Plan ⇄ 3D ⇄ Daten/Sheets), Änderung in einer Sicht propagiert sofort in alle anderen. (Arcol, Snaptrude) 2. **Kontextuelle UI** statt voller Werkzeugleisten: Buttons/Felder erscheinen nur, wenn die aktuelle Auswahl sie erlaubt. (Arcol, Onshape, Figma) 3. **Drei-Zonen-Layout**: links Navigator/Layer-Baum, Mitte Canvas + schwebende Tool-Palette, rechts Inspector. (Figma, Vectorworks, Onshape) 4. **Aggressives Snapping/Inferencing** mit Live-Glyphen + Modifier zum Unterdrücken. (Onshape) — für Maus-im-Browser unverzichtbar. 5. **Direkte Manipulation per Grips** statt Dialogen. (Figma, DOSSIER-Backlog) 6. **Perceived performance** über Skeletons, optimistic UI und gescopte Ladezustände — im Browser-3D-Kontext ein Differenzierungs-Hebel. 7. **Command-Palette (Ctrl/Cmd-K)** als Discovery- und Speed-Layer. 8. **Onboarding via „learn by doing"** an einem mitgelieferten Sample-Projekt + progressive disclosure. Unsere bestehende Architektur (semantisches Modell als Single Source of Truth, abgeleitete Sichten, Vectorworks-Terminologie) ist exakt der richtige Unterbau für diese Muster — die meiste Arbeit liegt in der **UI-Schicht**, nicht im Datenmodell. --- ## 1. Gesamtlayout & Navigator-/Layer-Panels ### 1.1 Was die Tools machen **Figma** strukturiert die Fläche in vier Zonen: eine Toolbar, **zwei Panels** und einen scrollbaren Canvas. Links das **Navigation-Panel** mit Layern und Pages, rechts das **Properties-Panel**; der Layer-Baum „enthält und organisiert alle Elemente auf dem Canvas … und zeigt, wie Elemente verbunden sind" ([Figma: left sidebar](https://help.figma.com/hc/en-us/articles/360039831974-View-layers-and-pages-in-the-left-sidebar), [Figma: Interface](https://www.inthepocket.design/course/figma-for-everyone/the-interface)). **Vectorworks** trennt sauber zwei Konzepte, die für uns 1:1 relevant sind: - Die **Navigation Palette** gibt Zugriff auf *Classes, Design Layers, Sheet Layers, Viewports, Saved Views, References* — jeweils als eigener Tab mit Liste. Sichtbarkeit wird per Klick in einer **Visibility-Spalte** gesetzt; Doppelklick **aktiviert** einen Layer/eine Class. Die Zeichenfläche bleibt nutzbar, während die Palette offen ist ([VW Navigation Palette](https://app-help.vectorworks.net/2022/eng/VW2022_Guide/Structure/The_Navigation_palette.htm)). - Paletten sind **andockbar/ein-/ausblendbar pro Workspace** ([VW Palettes & Tool Sets](https://app-help.vectorworks.net/2018/eng/VW2018_Guide/Start/Palettes_and_Tool_Sets.htm)). **Arcol** baut beim Modellieren einen **Model Tree** im Menü auf — pro BIM-Komponente wächst der Baum mit ([AEC Magazine: Arcol BIM in browser](https://aecmag.com/bim/arcol-bim-cloud-browser/)). **Onshape** zeigt links den **Feature-/Assembly-Baum** (parametrische Historie: Sketches, Features, Mates) — die Bauhistorie ist die primäre Navigation ([Onshape UI Basics](https://cad.onshape.com/help/Content/ui-basics.htm)). ### 1.2 Übernahme für uns Unser Dokumentmodell hat **zwei unabhängige Achsen** (siehe ROADMAP §2c): **Zeichnungsebenen** (Geschosse + Schnitte/Ansichten) und **Ebenen** (Grafik-Kategorien-Baum `00 Raster … 80 Plangrafik`). Das mappt fast wörtlich auf das Vectorworks-Navigations-Modell: - **Linke Sidebar, getabbt** wie die VW-Navigation-Palette: - Tab **„Geschosse / Ansichten"** (= unsere Zeichnungsebenen): EG/1OG/…, Schnitte, Ansichten. Mit **Visibility-Toggle**, **Lock**, und **Doppelklick = aktiv setzen** (welches Geschoss editiert wird). - Tab **„Ebenen"** (= Grafik-Kategorien-Baum, in *jedem* Geschoss gleich): Baum mit Code, Name, Farb-Swatch, Linienstärke, Visibility, Hatch. Pro Ansicht schaltbar (das ist genau VWs „Sichtbarkeit pro Viewport/Saved View"). - Tab **„BIM-Tree / Elemente"** (aus DOSSIER-Backlog §11: *Element-Übersicht Geschoss→Kind→Element, Suche, Shift-Klick = Zoom*). Das ist unser Pendant zu Arcols Model Tree + Onshapes Feature-Baum. - **Visibility-Spalte als Erstklass-Interaktion** (VW-Muster): Auge-Icon je Zeile, Klick togglet sofort, kein Dialog. (Wir haben bereits `EyeIcon.tsx` — das ist die Keimzelle.) - **Wichtig:** Geschoss wird **im 3D *oder* Plan** betrachtet, *keine* getrennten Daten — der View-Umschalter (siehe §2) gehört in die Geschoss-Auswahl, nicht in separate Dokumente. > **Anti-Pattern vermeiden:** Vectorworks selbst leidet unter > **Paletten-Wildwuchs** (viele frei schwebende Fenster). Für ein fokussiertes > Wohnbau-Tool: **feste 3-Zonen-Shell** (links Navigator, rechts Inspector), nicht > N frei schwebende Palettenfenster. Figmas Striktheit schlägt VWs Flexibilität für > unsere Zielgruppe (Architekt:innen, die schnell ein EFH zeichnen wollen). --- ## 2. 3D ⇄ Plan-View-Umschaltung (das Herzstück) ### 2.1 Was die Tools machen - **Snaptrude:** Nutzer arbeiten **in 2D *und* 3D gleichzeitig**; Änderung in einer Sicht spiegelt sich automatisch in der anderen. Objekte sind **nach Geschossen klassifiziert**, was es erlaubt, „3D-Geometrie zu zeichnen, während man in einer 2D-Grundriss-Ansicht arbeitet". Push-an-einer-Fläche „fühlt sich an wie eine Linie ziehen", berechnet aber sofort Flächen/BIM-Daten neu ([ArchDaily: Snaptrude](https://www.archdaily.com/1009121/snaptrude-the-browser-based-bim-tool-thats-changing-the-way-architects-work), [Snaptrude](https://www.snaptrude.com/)). - **Arcol:** „Every view is 3D in Arcol" — und **Boards** (Präsentations-Layouts) sind **live-synced**: ändert sich das Gebäude, aktualisieren sich die Layouts automatisch (kein statischer PDF-Export) ([AEC Magazine: Arcol BIM 2.0](https://aecmag.com/bim/arcol-unleashed-bim-2-0/)). - **TestFit:** explizites **Expand/Collapse von Optionen** — man klappt Varianten auf zum Vergleichen und wieder zu, um sich aufs Detail-Editieren im Canvas zu konzentrieren („smoother flow between setting up a site, reviewing options, and refining a design") ([TestFit 5.19](https://www.testfit.io/blog/testfit-5-19-a-new-generative-design-workflow)). ### 2.2 Übernahme für uns Das ist **genau unsere Kern-Architektur** (ROADMAP §2c: „Ansichtstyp = Kamera- Projektion + optionaler Schnitt"). Konkrete UI-Muster: - **View-Switcher als segmented control** direkt am Canvas (oben links oder oben mittig): `3D | Grundriss | Schnitt | Ansicht`. Plan-View = orthogonale Top-Kamera + Clipping-Ebene auf `okff + schnitthöhe` (steht bereits so im Modell). - **Kein** Moduswechsel der *Daten*, nur der **Kamera + Schnitt** — visuell als weicher Übergang (Kamera-Animation) kommunizieren, damit Nutzer Orientierung behalten (Snaptrude/Arcol-Gefühl: „dieselbe Sache aus anderem Winkel"). - **Optional, stark differenzierend:** **Split-View** (3D links, Plan rechts) wie Snaptrudes „2D + 3D simultan". Da unsere Sichten ohnehin reaktiv aus *einem* Modell abgeleitet werden (Zustand-Store → SVG-Plan + Three-Scene), ist Split-View technisch billig und ein Wow-Moment im Onboarding. - **Kamera-Presets** (aus DOSSIER-Backlog): Kardinal N/O/S/W, Iso-Oktanten, **Norden-Rotation** (CH/Swisstopo-Georeferenz) — als kleine Würfel-/Kompass-Gizmo oben rechts im 3D (ViewCube-Muster, bekannt aus Onshape/CAD allgemein ([Onshape UI Basics](https://cad.onshape.com/help/Content/ui-basics.htm))). - **Drawing Layers (Schnitte/Ansichten) sind „Saved Views"**: Auswahl in der linken Sidebar = Kamera + Schnitt + Maßstab + Layer-Kombination springt an (VW „Saved Views" / DOSSIER „Ausschnitte"). Das ersetzt Ordner-Wildwuchs bei 50+ Ansichten. --- ## 3. Zeichnen & Editieren: Snapping, Inferencing, Grips, Tool-Paletten ### 3.1 Snapping / Inferencing — das wichtigste Detail im Browser **Onshape** ist hier die Referenz (sehr konkret dokumentiert, [Onshape Automatic Inferencing](https://cad.onshape.com/help/Content/Sketch/automatic_inferencing.htm)): - **Inference-Typen:** horizontal, vertikal, **midpoint**, parallel, coincident, Ausrichtung zum Origin/zu anderen Entities, Tangente, Perpendikular. - **Visuelles Feedback:** - **gelbe Highlights** auf Vertices/Mittelpunkten beim Hovern, - **orange gestrichelte Linie** zeigt eine vorgeschlagene H/V-Ausrichtung, - **orange Highlight** verwandter Geometrie beim Ziehen (relationales Feedback). - **Steuerung:** Linksklick **akzeptiert** die vorgeschlagene Bedingung; **Shift gedrückt halten unterdrückt** Inferencing temporär (loslassen = wieder an). - **„Wake-up"-Inferences:** kurzes Verweilen über einer Geometrie „weckt" deren Bezugslinien (z. B. erst Mittelpunkt antippen, dann woanders zeichnen → bekommt Ausrichtung zu diesem Mittelpunkt). - **Post-hoc:** vorhandene Geometrie ziehen triggert erneut Inferencing (Center eines Kreises vertikal zum Origin ziehen → fügt automatisch vertikale Constraint). **Constraint-Sichtbarkeit:** Constraint-Icons sind farbcodiert (blau = externe/Referenz, weiß = intern) und ein-/ausblendbar ([Onshape Working with Constraints](https://cad.onshape.com/help/Content/Sketch/working_with_constraints.htm)). ### 3.2 Übernahme für uns (Snapping) Für ein Maus-bedientes Browser-Tool ist **gutes Snapping der Unterschied zwischen „Spielzeug" und „Werkzeug".** Konkret: - **Snap-Targets** (Wohnbau-relevant): Wand-Endpunkte/Achsen, Wand-Mittelpunkte, Rechtwinklig/Parallel zu bestehender Wand, **Raster** (Achsraster `00 Raster`), Öffnungs-Achsen, vorhandene 2D-Linien-Endpunkte, Schnittpunkte. - **Feedback exakt wie Onshape übernehmen:** Snap-Glyph am Cursor (● Endpunkt, △ Mitte, ⟂ rechtwinklig), **gestrichelte Hilfslinie** für Achsen-Alignment, Hover-Highlight des Snap-Ziels. - **Modifier:** **Shift unterdrückt Snapping** (Onshape-Konvention) — Nutzer erwarten das bereits aus anderen Tools. Zusätzlich **Ortho-Modus** (z. B. Shift für 0/45/90° beim Linienziehen — Figma-Konvention) sauber davon trennen oder per Toggle. - **Live-Maßeingabe beim Zeichnen** (CAD-Standard, auch Onshape): während des Ziehens Länge/Winkel tippbar (Tab zwischen Feldern). Das ersetzt nachträgliches Dimensionieren und ist für Architekt:innen Pflicht. - Wir brauchen **kein** volles Constraint-Solver-System wie Onshape (mechanisches parametrisches CAD). BIM-Wände sind achs-basiert; **Inferencing beim Setzen** genügt, persistente geometrische Constraints sind Overkill für Wohnbau. ### 3.3 Grip-Editing / direkte Manipulation - **Figma:** Auswahl zeigt Bounding-Box mit **Resize-Handles**; ziehen manipuliert direkt; Smart-Guides/Maße erscheinen relativ zu Nachbarn beim Bewegen ([Figma right sidebar](https://help.figma.com/hc/en-us/articles/360039832014-Design-prototype-and-explore-layer-properties-in-the-right-sidebar)). - **Snaptrude:** Push/Pull an Flächen als primäre 3D-Edit-Geste ([ArchDaily](https://www.archdaily.com/1009121/snaptrude-the-browser-based-bim-tool-thats-changing-the-way-architects-work)). - **DOSSIER-Backlog (§11)** listet **Grip-Editing** (Wand-Endpunkte, Schnitt-Symbole im Plan) explizit als Aufwand L, Phase 3–4 — und das **9-Punkt- Objekt-Info** (lesen + verschieben/skalieren/rotieren direkt). **Übernahme:** Grips sind der wichtigste „pro feel"-Hebel. - **Wand-Endpunkt-Grips** im Plan *und* 3D, mit Snapping (s. o.) und Live-Maß. - **Öffnungs-Grips** (Position entlang Wand, Breite) — Host-Beziehung bleibt erhalten. - **Schnittlinien-Grips im Plan** (Schnittlinie ziehen → Schnitt-Ansicht re-deriviert) — das ist Grip-Editing über die Sicht-Grenze hinweg, ein starkes Differenzierungsmerkmal. - Selektion → **bounding handles** (Figma-Muster) für 2D-Plangrafik (Linien, Rechtecke, Text). ### 3.4 Tool-Palette & kontextuelle Werkzeuge **Kontextuelle UI ist das durchgehende Muster:** - **Arcol:** „buttons appear only when they can be used" — Loft/Sweep erscheinen bei Auswahl zweier Sketches, Boolean bei zwei Extrusions ([AEC: Arcol sneak peek](https://aecmag.com/bim/arcol-a-sneak-peek/)). - **Onshape:** Sketch-Toolbar erscheint beim Betreten des Sketch-Modus; Tools in Gruppen (vertikale Trennlinien), Dropdown-Pfeile für Varianten; Dialoge mit **blau hinterlegtem Feld**, das eine Auswahl im Graphics-Bereich verlangt ([Onshape sketch toolbar](https://cad.onshape.com/help/Content/Sketch/sketch_basics.htm), [Onshape Constraints](https://cad.onshape.com/help/Content/Sketch/working_with_constraints.htm)). - **Figma:** schmale Bottom-/Top-Toolbar mit den Kern-Tools; alles Weitere kontextuell rechts. **Übernahme:** - **Schlanke Tool-Palette** (Figma-artig), gruppiert nach unserer Domäne: *Wand · Tür/Fenster · Decke · Treppe · Dach · Raum* (BIM) und *Linie · Polylinie · Rechteck · Kreis · Bogen · Text · Bemaßung* (2D auf `80 Plangrafik`). - **Modus-bewusste Tools:** im Grundriss andere Defaults als im 3D; im Schnitt/Ansicht nur Annotation/2D-Tools. - **Contextual action bar bei Auswahl** (Arcol-Muster): selektiere eine Wand → schwebende Mini-Toolbar „Tür einsetzen / Fenster / Wandtyp / verschneiden". Selektiere zwei Wände → „verschneiden / verlängern". - **Aktives Tool sticky + ESC bricht ab**, Leertaste = Pan, Scroll = Zoom (Figma/CAD-Konventionen — Nutzer bringen Muskelgedächtnis mit). - **LoD-bewusste Tool-/Stil-UI** (DOSSIER-Backlog: *zeigt nur passende Controls je Geometrie-Typ*) — keine Füll-Optionen bei 3D-Auswahl. Deckt sich mit Figmas „controls appear based on layer type". --- ## 4. Property-/Inspector-Panel ### 4.1 Was die Tools machen **Figma — rechte Sidebar** (für uns das Vorbild, [Figma right sidebar](https://help.figma.com/hc/en-us/articles/360039832014-Design-prototype-and-explore-layer-properties-in-the-right-sidebar)): - Tabs **Design / Prototype** (bei Edit), **Inspect / Properties** (bei View-only). - Kategorien: **Alignment/Rotation/Position → Dimensions → Constraints/Layout → Appearance (Fill, Stroke, Effects) → Export**. - **Controls erscheinen je Layer-Typ** (kontextuell). - **Dev-Mode/Inspect** liefert konkrete Werte + Abstände zwischen Objekten + Code. **Arcol — rechtes Panel** zeigt **Gebäude-Metriken** kontextuell: Geschossfläche, Anzahl Geschosse, GFZ/FAR, Unit-Count, Standortfläche, Kostenschätzung ([Arcol BIM 2.0](https://aecmag.com/bim/arcol-unleashed-bim-2-0/)). **TestFit — ein zentrales Parameter-Panel:** „alle Schlüsselparameter an einem Ort" (Unit-Counts, Parkplatz-Ziele, Gebäudegrößen-Limits) → sofortige Wirkung auf generierte Optionen ([TestFit 5.19](https://www.testfit.io/blog/testfit-5-19-a-new-generative-design-workflow)). **Onshape — Feature-Dialoge:** Erstellen/Editieren über Dialoge mit Pflicht- Selektionsfeldern (blau) ([Onshape UI Basics](https://cad.onshape.com/help/Content/ui-basics.htm)). ### 4.2 Übernahme für uns - **Rechter Inspector, kontextuell nach Element-Typ** (Figma-Muster): - **Wand** → Wandtyp (→ WallType-Bibliothek), Referenzlage mid/left/right (DOSSIER-Backlog), Höhe, Achs-Endpunkte (9-Punkt/Maße), Stil-Overrides. - **Tür/Fenster** → Breite/Höhe, Brüstung, Schwenkbogen/Anschlag, Detailgrad, Symbol. - **Decke/Slab** → SlabType, UK/OK-Override, Aussparungen. - **Raum** → SIA-416-Kategorie (HNF/NNF/VF/FF/GF/AGF), Fläche (read-only, berechnet), Stempel-Felder. - **2D-Element** → Linienstil (→ Line Manager), Hatch (→ Hatch Manager), Farbe. - **Sektionen kollabierbar** (Figma) — Wohnbau-Inspector kann lang werden; Default-Sektionen offen, Fortgeschrittenes (Overrides) zugeklappt (= progressive disclosure, s. §7). - **Mixed-value-Handling bei Mehrfachauswahl** (Figma): bei Mehrfachauswahl abweichende Werte als „Mixed/—" zeigen, gemeinsames Editieren erlauben. Wichtig z. B. „alle EG-Wände auf Wandtyp X". - **Live-Metriken-Block** (Arcol-Muster) — selbst im Wohnbau wertvoll: Bruttogeschossfläche, **SIA-416-Bilanz**, Raumzahl, Volumen. Im Inspector wenn nichts selektiert ist = „Projekt-Übersicht" (vgl. Figmas Canvas-Level-Optionen bei leerer Auswahl). - **Read-only-Felder klar markieren** (berechnete Flächen/Volumen) vs. editierbar. --- ## 5. Resource-Manager (Bibliotheken) ### 5.1 Was Vectorworks macht — unser direktes Vorbild Der **Resource Manager** ist „ein zentraler Ort für Assets" (Symbole, Linientypen, Texturen, Materialien …) ([VW Resource Manager](https://app-help.vectorworks.net/2026/eng/VW2026_Guide/ResourceManager/Resource%20Manager.htm)): - **Zwei-/Drei-Pane-Modell:** **File-Browser** (offene Dateien, Favoriten, VW-Libraries, User-/Workgroup-Libraries) → **Resource-Viewer** (Ressourcen der gewählten Datei) → optional **Preview/Metadaten** ([VW File browser pane](https://app-help.vectorworks.net/2023/eng/VW2023_Guide/ResourceManager/Resource_Manager_File_browser_pane.htm), [VW Resource viewer pane](https://app-help.vectorworks.net/2026/eng/VW2026_Guide/ResourceManager/Resource_Manager_Resource_viewer_pane.htm)). - **Organisation mehrdimensional:** nach Quelle, **nach Typ** (Dropdown-Filter), nach Ordnerstruktur. - **Ansichten:** Thumbnails / List / Thumbnails-List; **Suchfeld** mit Filtern. - **Resource Selector**: dieselbe Bibliothek erscheint **in Dialogen** und zeigt dort nur **kontextuell passende** Ressourcen. ### 5.2 Übernahme für uns Unsere ROADMAP §2d definiert bereits **Line Manager / Hatch Manager / Component Manager**, mit Verweis-per-id-Architektur (Components → Hatches → LineStyles). Das Vectorworks-Modell passt perfekt: - **Ein gemeinsames Resource-Browser-Pattern** für alle Bibliotheken (Linienstile, Schraffuren, Components/Baustoffe, später Wand-/Öffnungs-Stil-Kataloge, Material-PBR, Raumstempel-Layouts). Eine wiederverwendbare React-Komponente, parametrisiert nach Ressourcentyp. - **Zwei Erscheinungsformen** (wie VW): 1. **Manager-Ansicht** (großes Panel/Modal) zum Anlegen/Editieren/Duplizieren. 2. **Inline-Resource-Selector** im Inspector — beim Setzen eines Wandtyps/Hatch öffnet sich ein kompakter Picker mit Thumbnails, gefiltert auf den passenden Typ. (Figma macht das analog mit „Styles/Variables".) - **Thumbnails sind im CAD-Kontext kritisch**: Hatch-Vorschau, Component- Schichtaufbau, Linienstil-Strich als gerenderte Mini-Previews. - **Zentrale Änderung propagiert** (unsere id-Referenz-Architektur): Component-Farbe ändern → alle Wände mit diesem Component aktualisieren live. Das ist Arcols „single source of truth" auf Ressourcen-Ebene. - **Cross-Projekt-Presets/Favoriten** (DOSSIER-Backlog, LocalStorage; VW-Favoriten): „einmal speichern, überall nutzen". --- ## 6. Perceived Performance (gefühlte Geschwindigkeit) Browser-3D + WASM-Geometrie (web-ifc, OpenCascade) + HLR-Projektion = **echte Latenz** an mehreren Stellen. Gefühlte Performance ist hier ein Differenzierungs-Hebel gegenüber schwerfälligem Revit/ArchiCAD. ### 6.1 Belegte Muster - **Skeleton-Screens** lassen Apps **20–30 % schneller** wirken als Spinner bei identischer realer Ladezeit ([LogRocket: skeleton screens](https://blog.logrocket.com/ux-design/skeleton-loading-screen-design/), [UI Deploy](https://ui-deploy.com/blog/skeleton-screens-vs-spinners-optimizing-perceived-performance)). - **Indikator zur Situation passen:** Spinner für kurze Waits, Skeleton für Content, Progress-Bar für messbare Operationen, **optimistic UI** für „instant-feeling" Aktionen ([Onething: skeleton vs spinner](https://www.onething.design/post/skeleton-screens-vs-loading-spinners)). - **Optimistic UI**: UI sofort aktualisieren, Server-Bestätigung abwarten, nur bei Fehler zurückrollen — ideal für häufige, risikoarme Aktionen ([Smart Interface Design Patterns](https://smart-interface-design-patterns.com/articles/designing-better-loading-progress-ux/)). - **Verzögerung vor Indikator (100–200 ms):** schließt die Operation vorher ab, gar kein Indikator → kein Flackern ([Onething](https://www.onething.design/post/skeleton-screens-vs-loading-spinners)). - **Gescopte Ladezustände** (React Suspense / Next loading.tsx): nur der betroffene Bereich lädt, der Rest bleibt interaktiv; `aria-busy`, Live-Regions, reduced-motion respektieren ([LogRocket](https://blog.logrocket.com/ux-design/skeleton-loading-screen-design/)). ### 6.2 Übernahme für uns (konkret) - **Optimistic Model-Edits:** Geometrie-Mutation (Wand ziehen, Tür setzen) **sofort** im Zustand-Store + 3D anzeigen; **schwere Booleans/HLR im Web Worker** (Comlink, bereits geplant) nachziehen. Wand erscheint sofort, die *exakte* verschnittene Öffnung/Schnittlinie „schärft nach". UI bleibt flüssig. - **Progressive Plan-Generierung:** SVG-Grundriss zuerst grob (Achsen/Linien), Schraffuren/Symbole nachladen — Skeleton/„low-detail first" statt Spinner. - **HLR-Schnitte (Risiko #4):** Worker + Caching (ROADMAP §6). UI: **Skeleton der Schnitt-Ansicht** + „berechne verdeckte Kanten…" mit Progress, restliche App bleibt nutzbar (gescopter Ladezustand). - **Delay-then-show** für alle Worker-Tasks (150 ms-Schwelle), sonst Flicker beim schnellen Editieren. - **Three.js-Disziplin:** stabile 60 fps beim Orbit/Pan ist selbst „perceived performance" — instanziertes Rendering, Frustum-Culling, LoD für ferne Geometrie (deckt sich mit ROADMAP-Phase-7-Performance-Härtung). Lieber 60 fps bei grober Geometrie als ruckelnde Präzision. - **Auto-Save-Status klar, unaufdringlich** kommunizieren („Gespeichert"/„Speichern…"), optimistic — nie blockierend (Figma-Muster). --- ## 7. Onboarding & Discoverability ### 7.1 Belegte Muster - **Progressive Disclosure:** zuerst nur Essenzielles zeigen, Komplexität schrittweise enthüllen — reduziert kognitive Last; drei Typen: step-by-step, conditional, contextual ([IxDF: Progressive Disclosure](https://ixdf.org/literature/topics/progressive-disclosure), [UXPin](https://www.uxpin.com/studio/blog/what-is-progressive-disclosure/)). - **„Learn by doing" an Sample-Dokument:** Grammarly startet Nutzer mit einem Beispiel-Dokument mit Fehlern; Hotspots/Tooltips führen durch Features ([Userpilot: onboarding examples](https://userpilot.com/blog/user-onboarding-examples/)). - **Stufenweises Aufdecken fortgeschrittener Features** (Asana: erst Projekt anlegen, später Dependencies/Kanban/Gantt) ([Userpilot: progressive disclosure](https://userpilot.com/blog/progressive-disclosure-examples/)). - **Command-Palette als Discovery-Layer:** durchsuchbare Befehlsliste hilft, Features zu entdecken — „incredible effect on exploration and feature discoverability", besonders für neue/seltene Nutzer ([Mobbin: command palette](https://mobbin.com/glossary/command-palette), [Untitled UI: command menus](https://www.untitledui.com/components/command-menus)). - **Arcol** wirbt explizit mit „low barrier to entry, gentle learning curve … clean, intuitive, requires minimal training" ([AEC: Arcol BIM 2.0](https://aecmag.com/bim/arcol-unleashed-bim-2-0/)). ### 7.2 Übernahme für uns - **Mitgeliefertes Sample-Projekt** (wir haben bereits `sampleProject.ts`!) als Onboarding-Bühne: ein kleines EFH, fertig modelliert. Nutzer **manipuliert echtes Modell** statt leerem Canvas (Grammarly-Muster). Erste Geste: „zieh diese Wand" → sieht 3D + Plan live mitlaufen (unser Kern-Wow). - **Progressive Disclosure im Inspector & Tool-Palette:** Default zeigt Wohnbau-Essenz (Wand/Tür/Fenster/Decke/Raum). Fortgeschrittenes (Prioritäts- Verschneidung, Overrides, Detailgrade, Section-Styles) **zugeklappt / hinter „Erweitert"**. Das passt zu unserem radikalen Wohnbau-Fokus. - **Contextual coachmarks** statt langem Tutorial: beim ersten Selektieren einer Wand ein kleiner Tooltip „Endpunkt ziehen zum Verlängern, Doppelklick für Wandtyp". - **Command-Palette (Ctrl/Cmd-K)** — siehe §8 — doppelt als Onboarding: alle Werkzeuge/Befehle durchsuchbar = lebende Feature-Liste. - **Tastatur-Kürzel sichtbar machen** (in Tooltips, in der Palette) — schult beiläufig pro Workflows. --- ## 8. Command-Palette & Tastatur ### 8.1 Belegte Muster - **Ctrl/Cmd-K** ist die De-facto-Konvention (Linear, Figma [Cmd-P], Notion, Vercel, Raycast, Slack, Superhuman); VS Code nutzt Cmd-Shift-P ([Mobbin](https://mobbin.com/glossary/command-palette), [Superhuman: command palette](https://blog.superhuman.com/how-to-build-a-remarkable-command-palette/)). - Zwei Haupt-Use-Cases: **Navigation/Suche** und **Shortcuts/Quick Actions** ([Outdraw Academy: command palette](https://outdraw-academy.gitbook.io/ux-patterns/command-palette)). - Trigger kann **sichtbar** (Button/Suchleiste) oder nur per Shortcut sein — für Discovery besser **auch sichtbar** ([Mobbin](https://mobbin.com/glossary/command-palette)). ### 8.2 Übernahme für uns - **Cmd/Ctrl-K-Palette** für: Werkzeug aktivieren („Wand", „Tür"), Ansicht springen („Grundriss EG", „Schnitt A-A"), Ressource öffnen („Hatch Manager"), globale Aktionen („Norden rotieren", „PDF exportieren", „SIA-Bilanz"). - **Sichtbarer Trigger** (Such-/Befehlsfeld in der Top-Bar) für Entdeckung + Shortcut für Speed. - **Konsistente, dokumentierte Shortcuts** (Figma-Disziplin): W=Wand, T=Tür, L=Linie, Space=Pan, Scroll=Zoom, Shift=Snap aus, Esc=Abbrechen, G=Grundriss-Toggle. In Tooltips + Palette anzeigen. --- ## 9. Leitplanken für unsere UI (priorisierte Empfehlungen) > Sortiert nach **Hebel × Aufwand**. „P#" = grobe Phasen-Zuordnung zur ROADMAP. ### A. Sofort / Fundament (Phase 0–1) — billig, prägt alles 1. **Feste 3-Zonen-Shell.** Links **Navigator** (Tabs: *Geschosse/Ansichten · Ebenen · BIM-Tree*, je mit Visibility-Toggle wie VW Navigation Palette). Mitte **Canvas** mit schwebender Tool-Palette + View-Switcher. Rechts **Inspector** (kontextuell). *Keine* frei schwebenden Palettenfenster (Anti-VW-Wildwuchs). 2. **View-Switcher als segmented control** `3D | Grundriss | Schnitt | Ansicht` direkt am Canvas; weiche Kamera-Übergänge; *eine* Datenquelle (kein Daten- Moduswechsel). Nutzt unsere bestehende „abgeleitete Sichten"-Architektur. 3. **Visibility/Lock pro Zeile** als Erstklass-Interaktion (1 Klick, kein Dialog) — `EyeIcon.tsx` ausbauen. 4. **Kontextueller Inspector**: Controls nur für den selektierten Element-Typ (Figma/Arcol); berechnete Felder read-only markiert; Sektionen kollabierbar. 5. **Tastatur-Grundlagen + Konventionen festnageln**: Space=Pan, Scroll=Zoom, Esc=Abbrechen, Shift=Snap aus. Früh festlegen → Muskelgedächtnis. ### B. Kern-„Pro-Feel" (Phase 1–2) — der eigentliche Wert 6. **Snapping/Inferencing nach Onshape-Vorbild**: Snap-Glyphen am Cursor, gestrichelte Achsen-Hilfslinien, Hover-Highlight, **Shift = unterdrücken**, Wake-up-Inferences. Targets: Wand-Enden/Achsen/Mitten, Raster, Rechtwinklig/ Parallel, Öffnungs-Achsen. **Höchste Priorität für „Werkzeug-Gefühl".** 7. **Live-Maßeingabe beim Zeichnen** (Länge/Winkel tippbar, Tab zwischen Feldern). 8. **Kontextuelle Action-Bar bei Auswahl** (Arcol): Wand selektiert → „Tür/Fenster einsetzen / Wandtyp / verschneiden". Buttons erscheinen nur, wenn anwendbar. 9. **Schlanke domänen-gruppierte Tool-Palette** (BIM-Bauteile + 2D-Zeichnen), modus-bewusst je Ansicht. 10. **Optimistic Edits + Worker-Nachzug**: Mutation sofort sichtbar, schwere Booleans/HLR im Worker (Comlink); Delay-then-show (150 ms) statt Spinner-Flicker. ### C. Differenzierung (Phase 3) — hier gewinnen wir 11. **Grip-Editing** (Wand-Endpunkte, Öffnungs-Position/-Breite, **Schnittlinie im Plan**) mit Snapping + Live-Maß, in 2D *und* 3D. (DOSSIER-Backlog, Aufwand L — aber Kern-Differenzierer.) 12. **Saved Views / Ausschnitte** in der linken Sidebar = Kamera + Schnitt + Maßstab + Layer-Kombination per Klick (VW „Saved Views" / DOSSIER). Skaliert auf 50+ Ansichten. 13. **Wiederverwendbares Resource-Browser-Pattern** für Line/Hatch/Component-Manager: Zwei-Pane (File-Browser → Viewer mit Thumbnails) als Manager *und* als inline Picker im Inspector (VW-Modell). Zentrale Änderung propagiert (id-Referenzen). 14. **Perceived-performance-Politik festschreiben**: Skeletons für Plan-/Schnitt- Generierung, gescopte Ladezustände (restliche App bleibt nutzbar), reduced-motion/`aria-busy` respektieren. 15. **Split-View 3D|Plan** (Snaptrude-Muster) — billig dank reaktiver Sichten, starker Wow-Effekt; auch fürs Onboarding. ### D. Adoption & Politur (Phase 1 fortlaufend → 7) 16. **Onboarding via Sample-Projekt** (`sampleProject.ts` als fertiges EFH); „learn by doing", erste Geste zeigt 3D⇄Plan-Live-Sync. Progressive Disclosure: Wohnbau-Essenz default, Fortgeschrittenes (Prioritäts-Verschneidung, Overrides, Detailgrade) zugeklappt. 17. **Command-Palette (Cmd/Ctrl-K)** + sichtbarer Trigger: Werkzeuge/Ansichten/ Ressourcen/Aktionen durchsuchbar; doppelt als Discovery-Layer. 18. **Live-Metriken-Block** im Inspector (Arcol): BGF, **SIA-416-Bilanz**, Räume, Volumen — bei leerer Auswahl als Projekt-Übersicht. 19. **CH-Spezifika UI-seitig vorsehen**: **Norden-Rotation**-Gizmo (ViewCube/Kompass), SIA-Raumkategorien im Raum-Inspector, später Swisstopo-Import-Flow mit Auto-Zoom + Nullpunkt-Verschiebung. ### Übergreifende Designprinzipien (gelten immer) - **Kontextualität vor Vollständigkeit** — zeige nur, was jetzt anwendbar ist (Arcol/Onshape/Figma). Direkt verzahnt mit unserem „LoD-bewusste Stil-UI"-Backlog. - **Direkte Manipulation vor Dialogen** — Grips/Drag/Inline-Edit schlägt Properties-Dialog (Figma/Snaptrude/DOSSIER). - **Eine Wahrheit, viele Sichten** — niemals Sicht-spezifische Daten; alles aus dem semantischen Modell ableiten (deckt sich exakt mit unserem Architektur-Prinzip). - **Konventionen respektieren** — Pan/Zoom/Snap/Esc/Cmd-K wie die etablierten Tools; Nutzer bringen Muskelgedächtnis aus Figma/CAD mit. - **Gefühlte > tatsächliche Geschwindigkeit** — optimistic + Skeletons + 60 fps; im schweren Browser-3D-Geometrie-Kontext ein echter Wettbewerbsvorteil. --- ## Quellen **Arcol** - [Arcol unleashed – BIM 2.0 (AEC Magazine)](https://aecmag.com/bim/arcol-unleashed-bim-2-0/) - [Arcol – BIM in a browser (AEC Magazine)](https://aecmag.com/bim/arcol-bim-cloud-browser/) - [Arcol: a sneak peek (AEC Magazine)](https://aecmag.com/bim/arcol-a-sneak-peek/) - [The Arcol Manifesto](https://arcol.io/blog/the-arcol-manifesto) **Snaptrude** - [Snaptrude – browser-based BIM tool (ArchDaily)](https://www.archdaily.com/1009121/snaptrude-the-browser-based-bim-tool-thats-changing-the-way-architects-work) - [Snaptrude (offiziell)](https://www.snaptrude.com/) **TestFit** - [TestFit 5.19: A New Generative Design Workflow](https://www.testfit.io/blog/testfit-5-19-a-new-generative-design-workflow) - [TestFit (offiziell)](https://www.testfit.io/) **Onshape** - [Onshape: User Interface Basics](https://cad.onshape.com/help/Content/ui-basics.htm) - [Onshape: Automatic Inferencing](https://cad.onshape.com/help/Content/Sketch/automatic_inferencing.htm) - [Onshape: Working with Constraints](https://cad.onshape.com/help/Content/Sketch/working_with_constraints.htm) - [Onshape: Sketch Basics](https://cad.onshape.com/help/Content/Sketch/sketch_basics.htm) **Vectorworks** - [VW Resource Manager](https://app-help.vectorworks.net/2026/eng/VW2026_Guide/ResourceManager/Resource%20Manager.htm) - [VW Resource Manager: File browser pane](https://app-help.vectorworks.net/2023/eng/VW2023_Guide/ResourceManager/Resource_Manager_File_browser_pane.htm) - [VW Resource Manager: Resource viewer pane](https://app-help.vectorworks.net/2026/eng/VW2026_Guide/ResourceManager/Resource_Manager_Resource_viewer_pane.htm) - [VW Navigation Palette](https://app-help.vectorworks.net/2022/eng/VW2022_Guide/Structure/The_Navigation_palette.htm) - [VW Palettes and Tool Sets](https://app-help.vectorworks.net/2018/eng/VW2018_Guide/Start/Palettes_and_Tool_Sets.htm) **Figma** - [Figma: right sidebar / layer properties](https://help.figma.com/hc/en-us/articles/360039832014-Design-prototype-and-explore-layer-properties-in-the-right-sidebar) - [Figma: left sidebar (layers & pages)](https://help.figma.com/hc/en-us/articles/360039831974-View-layers-and-pages-in-the-left-sidebar) - [Figma for Everyone: The Interface](https://www.inthepocket.design/course/figma-for-everyone/the-interface) **Perceived Performance** - [LogRocket: Skeleton loading screen design](https://blog.logrocket.com/ux-design/skeleton-loading-screen-design/) - [UI Deploy: Skeleton Screens vs. Spinners](https://ui-deploy.com/blog/skeleton-screens-vs-spinners-optimizing-perceived-performance) - [Onething: Skeleton Screens vs Loading Spinners](https://www.onething.design/post/skeleton-screens-vs-loading-spinners) - [Smart Interface Design Patterns: Loading & Progress UX](https://smart-interface-design-patterns.com/articles/designing-better-loading-progress-ux/) **Command Palette** - [Mobbin: Command Palette](https://mobbin.com/glossary/command-palette) - [Untitled UI: Command menus (Cmd-K)](https://www.untitledui.com/components/command-menus) - [Superhuman: How to build a remarkable command palette](https://blog.superhuman.com/how-to-build-a-remarkable-command-palette/) - [Outdraw Academy: Command Palette UX pattern](https://outdraw-academy.gitbook.io/ux-patterns/command-palette) **Onboarding / Progressive Disclosure** - [IxDF: Progressive Disclosure](https://ixdf.org/literature/topics/progressive-disclosure) - [UXPin: What Is Progressive Disclosure](https://www.uxpin.com/studio/blog/what-is-progressive-disclosure/) - [Userpilot: User onboarding examples](https://userpilot.com/blog/user-onboarding-examples/) - [Userpilot: Progressive disclosure examples](https://userpilot.com/blog/progressive-disclosure-examples/)