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

BefehlZweck

bausteinsicht export

PNG oder SVG via draw.io CLI (visuelles Ergebnis)

bausteinsicht export-diagram

Text-Diagramme: PlantUML, Mermaid, DOT, D2, HTML5, Structurizr DSL

bausteinsicht export-sequence

Sequenzdiagramme aus dynamicViews

bausteinsicht export-table

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 context

Beispielausgabe (C4-Context-Diagramm):

Diagram

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.png

D2

bausteinsicht export-diagram --diagram-format d2 --output docs/diagrams/
# → docs/diagrams/architecture-context.d2

HTML5-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 json

Ausgabe:

[
  { "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 plantuml

Für das Checkout-Beispiel aus Teil 3:

Diagram

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.adoc

Beispielausgabe (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 json

Ausgabe:

[
  { "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 --force

Das ist der Migrationspfad für bestehende Projekte: einmalig importieren, dann mit Bausteinsicht weiterarbeiten.

Wann welcher Export?

SzenarioEmpfehlungBefehl

Dokumentation in Confluence oder AsciiDoc

PNG/SVG einbetten

export --image-format png

GitHub-README oder PR-Beschreibung

Mermaid direkt einbetten

export-diagram --diagram-format mermaid

Team ohne draw.io möchte Diagramme reviewen

HTML5-Viewer verteilen

export-diagram --diagram-format html

Migration zu Structurizr oder LikeC4

DSL exportieren

export-diagram --diagram-format structurizr

Architektur-Review mit Stakeholdern

PDF via PlantUML oder PNG

export --scale 2.0

CI-Pipeline, automatische Dokumentation

JSON-Ausgabe verarbeiten

export-diagram --format json

Compliance-Dokumentation

AsciiDoc-Tabelle

export-table --combined

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:

containers
context

Generierte PlantUML-Diagramme via bausteinsicht export-diagram:

Diagram
Diagram

Was als nächstes kommt

Offizielle Dokumentation: User Manual · Tutorial auf doctoolchain.org