In den letzten Beiträgen haben Sie gelernt, wie Sie Bauteile aus Revit und Ihre Eigenschaften abrufen, sowie anschließend diese Listen sortieren und filtern. Heute gehen wir einen Schritt weiter und sehen uns an, wie diese Listen mit Excel synchronisiert werden können. Dieser Anwendungsfall kann besonders interessant sein, wenn in Excel weitere Berechnungen und Auswertungen stattfinden oder Sie Kollegen haben, die bestimmte Daten wie z.B. Raumbelegung oder Schlüsselnummern von Türen/Räumen pflegen, aber keinen Zugriff auf Revit haben.
Um eine Türliste nach Excel zu exportieren, werden logischerweise zunächst die Türen und die Eigenschaften, die in der Liste auftauchen sollen, abgefragt. Es können an sich beliebig viele Eigenschaften sein – diese werden dann einfach mit der Node List.Create wieder in einer Liste für die weitere Bearbeitung gesammelt:
Die Nodes für die Excel Anbindung finden Sie standardmäßig in Dynamo unter Data:
Beide Nodes besitzen mehrere Inputs, die unter dem Mauszeiger weitere Infos und Tipps anzeigen:
ExportExcel:
- filepath: Dateipfad der Microsoft Excel Tabelle (Diese muss vorher angelegt sein!)
- sheetName: Name des Arbeitsblatts (String)
- startRow: Erste Zeile durchnummeriert und beginnend mit 0 (Integer / Ganzzahl)
- startColumn: Erste Spalte durchnummeriert und beginnend mit 0 (Integer / Ganzzahl) – Achtung in beiden Fällen: Dynamo kennt die Excel Bezeichnungen für Zeilen und Spalten nicht, sondern zählt diese einfach beginnend mit 0 durch
- data: hier werden die Daten eingepflegt, die vorher mit list.Create gesammelt wurden
- overWrite: optional, hier kann mit dem Boolean Schalter wahlweise entweder das gesamte Dokument / vorhandene Daten überschreiben werden (TRUE) oder nur gezielt die angegebenen Felder (FALSE). Die Standardvorgabe ist FALSE, dieser macht z.B. auch Sinn, wenn sie eine vorbereitete Excel Vorlage nutzen
ImportExcel:
- file: die Datei (Microsoft Excel Tabelle) – Achtung, dieser Input unterscheidet sich etwas von dem bei der Exportfunktion, mehr dazu später in diesem Artikel
- sheetName: Name des Arbeitsblatts (String)
- readAsStrings: wieder mit dem Boolean Schalter zu steuern, erlaubt das Auslesen aller Werte als String = Zeichenfolge (TRUE) oder automatisch nach Inhalt Integer / Number / String etc. (FALSE, Vorgabewert)
- showExcel: mit Boolean Schalter zu steuern, erlaubt das Einlesen im Hintergrund, ohne Excel aktiv zu öffnen (FALSE) bzw. das automatische Öffnen der Tabelle in Excel (TRUE, Vorgabe)
TIPP: Alle Inputs, die einen Vorgabewert besitzen (z.B. overWrite, showExcel) können, müssen aber keine Nodes als Eingabe besitzen. Alle anderen Inputs müssen zwingend verbunden werden!
Um nun die Excel Tabelle zu exportieren, müssen alle Inputs wie folgt angegeben werden:
Das Feld Kommentare kann nun in Excel befüllt und nach Revit synchronisiert werden – natürlich können auch andere Parameter auf diesem Wege beschreiben werden, wichtig ist nur, dass der Parameter nicht schreibgeschützt ist (wie z.B. Fläche, Ebene) und dass der Datentyp richtig ist. Das Kommentarfeld z.B. ist ein Textfeld, daher können hier nur String Werte aus Dynamo eingelesen Werte; Parameter mit dem Datentyp Ganzzahl entsprechen Integer ist Dynamo, etc.
Bei der Node ImportExcel ist zu beachten, dass hier nicht der File Path sonder das File selbst verlangt wird – das ist eine Eigenart dieser Node, weswegen die Node File from Path dazwischengeschaltet werden muss:
Das Ergebnis liest hier die ganze Tabelle Zeile für Zeile aus, weswegen wir diese natürlich erstmal bereinigen müssen, da wir nur die Werte aus der Spalte Kommentare nach Revit zurück schreiben möchten:
Die so bereinigten Daten können nun einfach mit den bereits in den letzten Blogposts gelernten Methoden an die Türen geschreiben werden:
Die Listen in Dynamo bzw. in Excel dürfen nicht neu sortiert werden, da ansonsten die Zugehörigkeit der beiden Listen nicht gegeben ist! Falls eine Sortierung nötig ist, müssen entweder beide Listen sortiert werden, oder es muss zusätzlich mit der Revit IDs gearbeitet werden, die ebenfalls als eine separate Spalte nach Excel exportiert werden können. Aber dazu mehr in nächsten Blogbeiträgen!
Export und Import von Excel Dateien ist auch nur auf einem Rechner mit installiertem Excel möglich – ansonsten können die CSV Nodes genutzt werden.
Laden Sie hier das Skript herunter (erfordert Dynamo 2.x)
Thema nächsten Dienstag: Familien in Revit mit Hilfe von Dynamo platzieren
Interessieren Sie bestimmte Themen? Dann hinterlassen Sie uns ein Kommentar und nach Möglichkeit werden wir es in einem der nächsten Blogposts behandeln!
Weiterführende Links:
Offizielle Dynamo Website und Forum
Dynamo Primer – digitales Dynamo Handbuch
Dynamo Language Guide (PDF, Englisch)
Deutschsprachige Videotutorials (etwas älter, als Einstieg dennoch gut geeignet)
LinkedIn Learning Dynamo Training (Englisch)