Dieser Post setzt den fünften Teil fort. Das Bausteinsicht-Modell ist die Quelle der Wahrheit — und aus ihr lassen sich viele verschiedene Ausgabeformate generieren. Dieser Post zeigt alle verfügbaren Export-Befehle.
Überblick: Die vier Export-Befehle
| Befehl | Zweck |
|---|---|
| PNG oder SVG via draw.io CLI (visuelles Ergebnis) |
| Text-Diagramme: PlantUML, Mermaid, DOT, D2, HTML5, Structurizr DSL |
| Sequenzdiagramme aus |
| Element-Tabellen als AsciiDoc oder Markdown |
export: PNG und SVG
bausteinsicht export ruft die draw.io CLI headless auf und rendert jede View als Bilddatei.
# Alle Views als PNG exportieren (Standardformat)
bausteinsicht export --output docs/images/
# Nur eine bestimmte View exportieren
bausteinsicht export --view containers --output docs/images/
# SVG statt PNG (besser für Print und Web)
bausteinsicht export --image-format svg --output docs/images/
# Retina-Auflösung für Print (2x)
bausteinsicht export --image-format png --scale 2.0 --output docs/images/
# Mit eingebettetem draw.io XML (zum Weiterbearbeiten)
bausteinsicht export --embed-diagram --output docs/images/Ausgabe:
Exported: docs/images/context.png Exported: docs/images/containers.png Exported: docs/images/api-components.png
export erfordert die draw.io Desktop-Anwendung auf dem System. Bausteinsicht erkennt den Pfad automatisch. Auf CI-Systemen kann draw.io headless als Docker-Container betrieben werden. |
export-diagram: Text-basierte Diagramme
bausteinsicht export-diagram generiert text-basierte Diagrammformate direkt aus dem JSONC-Modell — ohne draw.io.
PlantUML
bausteinsicht export-diagram --diagram-format plantuml --output docs/diagrams/
# → docs/diagrams/context.puml, containers.puml, ...
# Einzelne View auf stdout
bausteinsicht export-diagram --diagram-format plantuml --view contextBeispielausgabe (C4-Context-Diagramm):
Mermaid
bausteinsicht export-diagram --diagram-format mermaid --output docs/diagrams/
# → docs/diagrams/context.mmd, containers.mmd, ...Mermaid-Diagramme lassen sich direkt in GitHub-Markdown einbetten:
```mermaid
C4Context
Person(customer, "Customer")
System(shop, "Online Shop")
Rel(customer, shop, "kauft ein")
```DOT (Graphviz)
bausteinsicht export-diagram --diagram-format dot --output docs/diagrams/
# → docs/diagrams/architecture-context.dot
# Direkt zu PNG via Graphviz
bausteinsicht export-diagram --diagram-format dot --view context | dot -Tpng -o context.pngD2
bausteinsicht export-diagram --diagram-format d2 --output docs/diagrams/
# → docs/diagrams/architecture-context.d2HTML5-Viewer
Der HTML-Export erzeugt eine interaktive Standalone-HTML-Seite:
bausteinsicht export-diagram --diagram-format html --output docs/
# → docs/context.html, docs/containers.html, ...Die HTML-Seiten lassen sich ohne Server öffnen — ideal für Dokumentations-Reviews ohne Build-Pipeline.
Structurizr DSL
Der Structurizr-Export erzeugt eine vollständige workspace.dsl-Datei:
bausteinsicht export-diagram --diagram-format structurizr --output docs/
# → docs/workspace.dsl--view ist beim Structurizr-Format nicht unterstützt — es exportiert immer den gesamten Workspace. |
JSON-Ausgabe für CI-Pipelines
Alle export-diagram-Formate unterstützen --format json für strukturierte Ausgabe in CI-Pipelines:
bausteinsicht export-diagram --diagram-format mermaid --format jsonAusgabe:
[
{ "view": "context", "format": "mermaid", "source": "C4Context\n..." },
{ "view": "containers", "format": "mermaid", "source": "C4Container\n..." }
]export-sequence: Sequenzdiagramme
bausteinsicht export-sequence exportiert dynamicViews aus dem Modell als Sequenzdiagramme.
# PlantUML (Standard)
bausteinsicht export-sequence --output docs/diagrams/
# → docs/diagrams/sequence-checkout.puml
# Mermaid
bausteinsicht export-sequence --diagram-format mermaid --output docs/diagrams/
# → docs/diagrams/sequence-checkout.md
# Einzelne Dynamic View
bausteinsicht export-sequence --view checkout --diagram-format plantumlFür das Checkout-Beispiel aus Teil 3:
So sieht das Ergebnis in draw.io aus (bausteinsicht sync):
Das draw.io-File dafür findest du hier: teil_6.drawio
export-table: Element-Tabellen
bausteinsicht export-table exportiert die Elemente einer View als strukturierte Tabelle — nützlich für Dokumentation und Compliance-Reviews.
# AsciiDoc-Tabelle (Standard) für alle Views
bausteinsicht export-table --output docs/
# Nur eine View
bausteinsicht export-table --view containers --table-format adoc --output docs/
# Markdown-Tabelle
bausteinsicht export-table --table-format md --output docs/
# Alle Elemente dedupliziert über alle Views
bausteinsicht export-table --combined --output docs/
# → docs/elements.adocBeispielausgabe (AsciiDoc):
[cols="1,1,1,2", options="header"]
|===
| Element | Kind | Technology | Description
| Web Frontend | container | React |
| REST API | container | Go |
| PostgreSQL | database | PostgreSQL |
| Redis Cache | database | Redis |
|===Für --format json:
bausteinsicht export-table --view containers --format jsonAusgabe:
[
{ "element": "shop.frontend", "title": "Web Frontend", "kind": "container", "technology": "React", "description": "" },
{ "element": "shop.api", "title": "REST API", "kind": "container", "technology": "Go", "description": "" }
]Import: Von Structurizr und LikeC4
Neben dem Export unterstützt Bausteinsicht auch den Import aus anderen Formaten:
# Structurizr DSL importieren
bausteinsicht import --from structurizr workspace.dsl --output architecture.jsonc
# LikeC4 DSL importieren
bausteinsicht import --from likec4 architecture.c4 --output architecture.jsonc
# Vorschau ohne zu schreiben
bausteinsicht import --from structurizr workspace.dsl --dry-run
# Existierende Datei überschreiben
bausteinsicht import --from likec4 architecture.c4 --forceDas ist der Migrationspfad für bestehende Projekte: einmalig importieren, dann mit Bausteinsicht weiterarbeiten.
Wann welcher Export?
| Szenario | Empfehlung | Befehl |
|---|---|---|
Dokumentation in Confluence oder AsciiDoc | PNG/SVG einbetten |
|
GitHub-README oder PR-Beschreibung | Mermaid direkt einbetten |
|
Team ohne draw.io möchte Diagramme reviewen | HTML5-Viewer verteilen |
|
Migration zu Structurizr oder LikeC4 | DSL exportieren |
|
Architektur-Review mit Stakeholdern | PDF via PlantUML oder PNG |
|
CI-Pipeline, automatische Dokumentation | JSON-Ausgabe verarbeiten |
|
Compliance-Dokumentation | AsciiDoc-Tabelle |
|
Beispiel-Modell
Das Basis-Modell für alle Export-Befehle in diesem Teil liegt unter teil_6.jsonc.
Generierte PNG-Dateien via bausteinsicht export --image-format png:


Generierte PlantUML-Diagramme via bausteinsicht export-diagram:
Was als nächstes kommt
Teil 7: Snapshots & Changelog — Architektur über Zeit versionieren
Teil 8: Validation & Linting — Architekturregeln mit
bausteinsicht lintdurchsetzen
Offizielle Dokumentation: User Manual · Tutorial auf doctoolchain.org