Diese Woche war es etwas ruhiger hier auf dem Blog, aber dafür habe ich heute ein besonderes Zuckerl für euch 😉
Einer meiner Kollegen wünschte sich letztens ein 3D Raster in Revit (wie auch schon viele andere Revit-User, schließlich ist dieser Punkt schon lange auf den RUG-Wunschlisten) – anstatt nach Plugins zu suchen, habe ich Dynamo eine Chance gegeben: und siehe da, es geht tatsächlich ganz einfach!

dynamo-3d-grid

 

Die Dynamo-Datei sowie die dazugehörige Familie für die Beschriftung des Achsrasters könnt ihr hier herunterladen. Damit die Definition greift, muss die Familie im Projekt geladen und in Dynamo explizit ausgewählt sein.

Die Dynamo-Datei ist bereits kommentiert, dennoch hier eine kurze Zusammenfassung der dahinterliegenden Logik:

dynamo-3d-grid-closeup1

Der erste Teil der Definition fragt alle Rasterlinien aus dem Projekt ab und wandelt sie anschließend in Linien um, die von Dynamo weiter verarbeitet werden können – um wie in diesem Fall Modellinien in Revit zu generieren.

Dadurch ist das Raster in Revit schon zu sehen, allerdings ohne die Beschriftung – damit geben wir uns natürlich nicht zufrieden und sehen mal nach, wie wir an die Rasternamen kommen:

dynamo-3d-grid-closeup2

Die Abfrage der Namen der Rasterlinien ist an sich kein Problem, da man mit GetParamterValueByName diese ganz einfach herausbekommt. Aber wie stellen wir sie nun in der 3D Ansicht im Projekt dar?

dynamo-3d-grid-closeup3

Meine erste Idee war der Modelltext, für den es auch eine Node in Dynamo gibt – leider ist mit Hilfe dieser aber nur die Erstellung von Modelltext im Familieneditor und nicht in der Projektumgebung möglich.

Aus diesem Grund habe ich eine eigene Familie angelegt, in der ich einen Modelltext eingefügt habe und dessen Wert mit einem Parameter verknüpft habe.

 

dynamo-3d-grid-closeup4

Diesen Parameter möchten wir mit Hilfe von Dynamo füllen und ihm den Wert liefern, den wir vorher von der Rasterlinie bekommen haben. Jetzt gilt es nur, die Familie mit Hilfe von Dynamo  zu platzieren:

 

dynamo-3d-grid-closeup5

Mit FamilySymbol.ByName können wir eine im Projekt geladene Familien aufrufen – hier einfach den genauen Namen in eine String-Node schreiben. Ist die Familie aufgerufen, kann sie über FamilyInstance.ByPoint in der Projektumgebung an einem beliebigen Punkt platziert werden. Zum Thema Punktauswahl komme ich nochmal weiter unten zurück.

In unserem Fall müssen wir zusätzlich auch den in der Familie definierten Parameter “Gridname” mit den Namen der Rasterlinie füllen – dies geschieht mit Hilfe von SetParameterByName.

Nun schauen wir mal, wo die Rasterbezeichnungen platziert werden sollen:

dynamo-3d-grid-closeup6

Logischwerweise möchten wir unsere Achsbezeichnung am Anfang (und eventuell auch am Ende) der Achslinie platzieren. Hierzu bieten sich die Nodes EndPoint und StartPoint an – nur leider würde sich in diesem Fall die Schrift mit der Linie überlappen, was nicht besonders schön ist.

Aus diesem Grund machen wir einen kleinen Workaround:

dynamo-3d-grid-closeup7

 

Wir verwenden die Node Curve.Extend, um die Dynamo-Linie erstmal zu verlängern und anschließend einen Punkt, der von der echten Modellinie versetzt ist, als den Platzierungspunkt für die Familie zu definieren.

Das Ergebnis sieht schließlich so aus:

 

dynamo-3d-grid-closeup8

Bitte denkt dran, dass die Modellinien sowie die Familienkategorie Allgemeines Modell in allen Ansichten sichtbar sind – ihr solltet also dementsprechend Filter bzw. Ansichtseinstellungen anpassen, damit das 3D-Raster nicht im Grundriss sichtbar ist.

 

Schönes Wochenende – und THINK BIM 😉

Lejla