Revit-Add-ins für TGA-Ingenieure: Automatisieren, was nicht manuell sein sollte

Die 20-Minuten-Aufgabe, die man 50 Mal pro Woche macht

Wenn Sie TGA-Ingenieur sind und mit Revit arbeiten, kennen Sie das: Jeden Kanalabschnitt mit seiner Größe beschriften. Manuell. Einen nach dem anderen. Über 12 Etagen eines Krankenhauses. Und dann alles nochmal, wenn der Architekt eine Wand verschiebt und die Hälfte Ihrer Kanalführung sich ändert.

Revit ist ein großartiges Tool, aber es wurde nicht mit TGA-Produktivität im Sinn gebaut. Die Architektur-Features sind ausgereift und poliert. Die TGA-Seite? Sie funktioniert, aber sie steckt voller repetitiver, klick-intensiver Workflows, die nach Automatisierung schreien.

Hier kommt die Revit-API ins Spiel. Mit einem benutzerdefinierten Add-in kann man eine 20-minütige manuelle Aufgabe in einen 2-Sekunden-Knopfdruck verwandeln.

Dieser Beitrag stellt drei praktische Revit-Add-ins vor, die ich während meiner Zeit als BIM-Ingenieur gebaut habe (oder gerne früher gebaut hätte) — was sie tun, warum sie wichtig sind und was ich dabei gelernt habe.

Was man zum Einstieg braucht

Die Revit-API ist eine C#/.NET-Schnittstelle, die mit jeder Revit-Installation ausgeliefert wird. Um Add-ins zu bauen, braucht man:

  1. Visual Studio (die kostenlose Community Edition reicht)
  2. Revit installiert auf dem eigenen Rechner (die API-Bibliotheken liegen im Revit-Installationsordner)
  3. Ein .NET Framework Klassenbibliothek-Projekt — dieses kompiliert zu einer DLL, die Revit beim Start lädt
  4. Eine .addin-Manifest-Datei — eine kleine XML-Datei, die Revit sagt, wo die DLL liegt und welche Befehle sie enthält

Man legt das Manifest in Revits Add-ins-Ordner, und die eigenen Befehle erscheinen beim nächsten Start im Ribbon. Kein Installer nötig für interne Tools.

Add-in 1: Automatische Beschriftung aller unbeschrifteten Kanalabschnitte

Das Problem: Revits eingebaute „Alle beschriften"-Funktion platziert Tags auf jedem Element, überspringt aber keine bereits beschrifteten — man bekommt Duplikate. Außerdem werden Tags an Standardpositionen platziert, die oft überlappen.

Was das Add-in macht:

  1. Scannt die aktive Ansicht nach allen Kanalabschnitten
  2. Identifiziert, welche bereits Tags haben (durch Abgleich mit bestehenden Tag-Elementen)
  3. Beschriftet nur die unbeschrifteten Kanäle, wobei jedes Tag am Mittelpunkt des Kanalabschnitts platziert wird

Das zentrale Revit-API-Konzept hier ist der FilteredElementCollector — er ermöglicht die Abfrage von Elementen nach Kategorie, Typ und Ansichtsbereich. Man nutzt ihn, um alle Kanalkurven in der aktuellen Ansicht zu sammeln, dann alle bestehenden Tags, um eine Menge bereits beschrifteter Element-IDs zu erstellen. Die Differenz ergibt die unbeschrifteten Kanäle.

Zeitersparnis: Bei einem typischen Grundriss mit 200+ Kanalabschnitten wird eine 15-minütige manuelle Aufgabe zu einem 2-Sekunden-Klick. Über ein 12-Etagen-Krankenhausprojekt sind das Stunden pro Woche.

Add-in 2: TGA-Systemdaten nach JSON exportieren

Das Problem: Man muss Daten aus Revit herausbekommen und in ein externes Tool bringen — einen Berechnungskern, ein Web-Dashboard, eine Kostenkalkulation oder eine HLK-Planungsplattform wie Mepbau. Revits eingebaute Exportoptionen (Bauteillisten, IFC) sind entweder zu begrenzt oder zu umfangreich.

Was das Add-in macht:

  1. Sammelt alle Rohrelemente aus dem Modell
  2. Liest Schlüsselparameter für jedes Rohr: Systemtyp, Material, Durchmesser, Länge, Start-/Endkoordinaten und Geschoss
  3. Konvertiert alle Einheiten von Revits internem imperialen System (Fuß) in metrisch (Meter und Millimeter)
  4. Schreibt eine saubere, strukturierte JSON-Datei auf den Desktop

Warum JSON? Sobald die BIM-Daten in JSON vorliegen, kann man sie an praktisch jedes externe System übergeben — ein webbasiertes Dashboard, einen Python-Berechnungskern, ein Kostenschätzungstool oder eine benutzerdefinierte Reporting-Pipeline.

Kritischer Stolperstein: Die Revit-API speichert alle Maße intern in imperialen Einheiten — Längen in Fuß, Flächen in Quadratfuß — unabhängig von den Anzeigeeinheiten des Projekts. Man muss manuell konvertieren: Fuß × 0,3048 = Meter, Fuß × 304,8 = Millimeter.

Add-in 3: Batch-Parameter-Schreiber aus CSV

Das Problem: Man hat Elementdaten nach Excel exportiert, Korrekturen vorgenommen (Dämmstärke, Brandschutzklasse, Hersteller) und muss jetzt diese Werte zurück in Revit schreiben. Manuell. Ein Element nach dem anderen. Für 800 Kanalabschnitte.

Was das Add-in macht:

  1. Öffnet einen Dateidialog zur Auswahl einer CSV-Datei
  2. Liest die CSV, wobei die erste Spalte die Element-ID und die restlichen Spalten Parameternamen sind
  3. Findet für jede Zeile das Element im Modell und schreibt die Parameterwerte
  4. Behandelt verschiedene Datentypen (Text, Zahlen, Ganzzahlen) automatisch
  5. Meldet, wie viele Parameter aktualisiert und wie viele Elemente nicht gefunden wurden

Das CSV-Format ist simpel: Eine Kopfzeile mit „ElementId" in der ersten Spalte, gefolgt von Parameternamen, und Datenzeilen darunter:

ElementIdDämmstärkeBrandschutzklasseHersteller
123456730F90Rockwool
123456850F120Armaflex

Das ist die Art von Add-in, die sich bei einer einzigen Nutzung amortisiert. Ich musste einmal Dämmparameter an 800+ Kanalabschnitten aktualisieren — ohne dieses Tool wäre das ein ganzer Tag Klickarbeit gewesen.

Fünf Revit-API-Lektionen auf die harte Tour

1. Alles erfordert eine Transaktion

Jede Änderung am Revit-Modell — auch das Ändern eines einzelnen Parameterwerts — muss in eine Transaktion eingepackt werden. Nur-Lese-Operationen brauchen keine.

2. Imperiale Einheiten überall

Revit speichert alles intern in Fuß. Immer konvertieren: Fuß × 304,8 = mm, Fuß × 0,3048 = m, Quadratfuß × 0,0929 = m².

3. Element-IDs sind nicht stabil

Element-IDs können sich ändern, wenn man mit der Zentrale synchronisiert oder die Datei aktualisiert. Für persistente Referenzen die UniqueId (ein GUID-String) statt der numerischen ElementId verwenden.

4. Auf Datenbankebene filtern

Der FilteredElementCollector filtert Elemente auf Revits interner Datenbankebene — das ist schnell. Alle Elemente zu sammeln und dann mit eigener Logik zu filtern ist langsam. Immer so viel Filterung wie möglich in den Collector schieben.

5. Regenerieren nach Geometrieänderungen

Wenn man Geometrie verändert und sofort danach Eigenschaften liest, können die Werte veraltet sein. Man muss Revit explizit anweisen, seinen internen Zustand nach Geometrieänderungen zu regenerieren.

Verbreitung und Zukunft

Für interne Tools reicht der .addin-Manifest-Ansatz. Für breitere Verbreitung:

  • Autodesk App Store — Der offizielle Marktplatz mit Sichtbarkeit bei Revit-Nutzern weltweit.
  • Installer-Paket — Eine MSI oder EXE, die DLL und Manifest automatisch am richtigen Ort platziert.
  • Firmenweite Verteilung — Per Gruppenrichtlinie oder freigegebenen Netzwerkpfad.

Autodesk treibt die Autodesk Platform Services (APS) voran, ehemals Forge — cloudbasierte APIs für die Arbeit mit Revit-Modellen ohne Desktop-Anwendung. Das eröffnet Möglichkeiten für webbasierte Tools, die Revit-Daten über REST-APIs lesen und schreiben — die Richtung, in die sich die Branche bewegt.


Bauen Sie Revit-Tools für TGA-Workflows? Schreiben Sie mir an hello@laborsam.com.