Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
rvt_dynamo:objekterstellung_und_parameterueberschreibung [2019/04/19 17:42] kacprzykrvt_dynamo:objekterstellung_und_parameterueberschreibung [2019/04/24 08:52] (aktuell) kacprzyk
Zeile 1: Zeile 1:
-====== 04.1 Objekterstellung =====+====== 03.1 Objekterstellung =====
  
-Das folgende Beispielprojekt beschreibt wie man mit Hilfe von Dynamo, Elemente in Revit erstellt und auf dessen Parameter zugreifen kann.+===== Vorbereitung ===== 
 +Das folgende Beispielprojekt beschreibt wie man mit Hilfe von Dynamo, Elemente in Revit erstellt und auf deren Parameter zugreifen kann.
  
-Das Projekt erklärt wie man mit Dynamo Stahlbetonstützen in einem wiederholenden Raster erstellt. Es werden die Grundfunktionen beschrieben und häufig verwendete Arbeitsweisen erklärt. Anschließend wird gezeigt wie man Parameter der Stützen herauslesen kann und diese überschreibt.+Das Projekt erklärt wie man mit Dynamo Stahlbetonstützen in einem vorgegebenen Raster erstellt. Es werden die Grundfunktionen beschrieben und häufig verwendete Arbeitsweisen erklärt. Anschließend wird gezeigt wie man Parameter der Stützen herauslesen kann und diese überschreibt.
 Es wird wie folgt vorgegangen: Es wird wie folgt vorgegangen:
  
 Im ersten Schritt wird das Revitprojekt (Version 2018) heruntergeladen und geöffnet. Im ersten Schritt wird das Revitprojekt (Version 2018) heruntergeladen und geöffnet.
-{{ wiki:objekterstellung.zip |Revitprojekt}}+{{ rvt_dynamo:objekterstellung.zip |Revitprojekt}}
  
-Ist das Projekt geöffnet, kann Dynamo gestartet werden und ein neues Projekt erstellt. 
  
-Im ersten Schritt wird die Programmausführung auf "Manualumgeschaltet.+Ist die Revitvorlage geöffnet, kann Dynamo gestartet und ein neues Projekt erstellt werden. 
 + 
 +Im ersten Schritt wird die Programmausführung auf Manual umgeschaltet.
  
 {{:rvt_dynamo:manual.png?200|}} {{:rvt_dynamo:manual.png?200|}}
 +
 +===== Blöcke laden =====
  
 Nun werden alle benötigten Blöcke in den Arbeitsbereich geladen. Nun werden alle benötigten Blöcke in den Arbeitsbereich geladen.
  
-Durch klicken der rechten Maustaste öffnet sich die Suchfunktion in der Bibliothek. Dafür werden die jeweiligen Begriffe in die Suchleiste eingegeben. Die Vorgehensweise ist den Bildern zu entnehmen.+Durch doppelten Rechtsklick öffnet sich die Suchfunktion in der Bibliothek. Dafür werden die jeweiligen Begriffe in die Suchleiste eingegeben. Die Vorgehensweise ist den Bildern zu entnehmen.
  
 Es werden folgende Blöcke geladen und in einer Reihenfolge von rechts nach links geordnet: Es werden folgende Blöcke geladen und in einer Reihenfolge von rechts nach links geordnet:
Zeile 53: Zeile 57:
 {{:rvt_dynamo:slider.png?500|}}  {{:rvt_dynamo:slider.png?500|}} 
  
-Die eingefügten Blöcke werden jetzt in die richtige Formatierung gebracht. Die Anordnung ist dem Bild zu entnehmen.+Die eingefügten Blöcke werden jetzt in die richtige Formatierung gebracht. Die Anordnung ist dem folgenden Bild zu entnehmen.
  
 {{:rvt_dynamo:p1stand1.png?1000|}}   {{:rvt_dynamo:p1stand1.png?1000|}}  
  
-Des Weiteren werden die Voreinstellungen für folgene Blöcke getroffen.+Des Weiteren sind Voreinstellungen für folgene Blöcke getroffen.
 ^Block ^ Wert^ ^Block ^ Wert^
 |   Levels    |    Ebene 1     | |   Levels    |    Ebene 1     |
Zeile 70: Zeile 74:
 {{:rvt_dynamo:blockname.png?400|}}  {{:rvt_dynamo:blockname.png?400|}} 
  
-Die erstellten Slider definieren die Eingabe für die Sequenzen der Punkte. Für komplexere visuelle Programme kann es von Vorteil sein, wenn mehrere Blöcke einer Gruppe zugewiesen werden. Dadurch stellt man im späteren Verlauf der Programmierung den Überblick sicher..+Die erstellten Slider definieren die Eingabe für die Sequenzen der Punkte. Für komplexere visuelle Programme kann es von Vorteil sein, wenn mehrere Blöcke einer Gruppe zugewiesen werden. Dadurch stellt man im späteren Verlauf der Programmierung den Überblick sicher.
  
-Es werden alle Slider markiert und anschließend auf einen Block mit rechter Maustaste geklickt. Es öffnet sich ein Menü, indem "Create Group" ausgewählt wird.+Es werden alle Slider markiert. Anschließend erfolgt ein doppelter Rechtsklick auf einen Block. Es öffnet sich ein Menü, indem "Create Group" ausgewählt wird.
  
 {{:rvt_dynamo:gruppe.png?200|}}  {{:rvt_dynamo:gruppe.png?200|}} 
  
-Anschließend kann per Doppelklick linke Maustaste der Gruppenname zu "Eingabe" geändert werden. Per Rechtsklick auf den Gruppenblock sind weitere Einstellungen möglich, wie z.B. das Ändern der Farbe.+Danach kann per Doppelklick linke Maustaste der Gruppenname zu "Eingabe" geändert werden.  
 +Per Rechtsklick auf den Gruppenblock sind weitere Einstellungen möglich, wie z.B. das Ändern der Farbe.
  
-{{:rvt_dynamo:gruppefarbe.png?200|}} +{{:rvt_dynamo:gruppefarbe.png?400|}}  
 + 
 +===== Blöcke verbinden =====
  
 Jetzt folgt die richtige Verbindung der Drähte zwischen den Blöcken. Jetzt folgt die richtige Verbindung der Drähte zwischen den Blöcken.
  
-In den letzten Schritten wurden die Blöcke von rechts nach links eingefühgt. Die Strukturierung erfolgte immer weiter ins Detail. Es wurden immer die Blöcke eingefügt die man für den vorherigen benötigte bspw. benötigt man für eine Liniezwei unterschiedliche Punkte und für einen Punktentsprechende Koordinaten usw. .+In den letzten Schritten wurden die Blöcke von rechts nach links eingefügt. Die Strukturierung erfolgte immer detaillierter 
 +Es wurden immer die Blöcke eingefügtdie man für den vorherigen benötigte. Zum Beispiel benötigt man für eine Linie zwei unterschiedliche Punkte und für einen Punkt entsprechende Koordinaten usw. .
  
 Die Verbindung der Drähte erfolgt nun vom Detail zum Endergebnis.  Die Verbindung der Drähte erfolgt nun vom Detail zum Endergebnis. 
Zeile 90: Zeile 98:
 Der zweite Slider "Integer Slider 2" definiert die Anzahl der erstellten Stützen entlang der X-Achse. Er wird mit den Eingang "amount" des oberen Sequenzenblocks verknüpft. Der zweite Slider "Integer Slider 2" definiert die Anzahl der erstellten Stützen entlang der X-Achse. Er wird mit den Eingang "amount" des oberen Sequenzenblocks verknüpft.
  
-Der zweite Slider "Integer Slider 3" definiert die Anzahl der erstellten Stützen entlang der Y-Achse. Er wird mit den Eingang "amount" des unteren Sequenzenblocks verknüpft. Anschließend wird das Script durch klicken auf "Run" ausgeführt+Der zweite Slider "Integer Slider 3" definiert die Anzahl der erstellten Stützen entlang der Y-Achse. Er wird mit den Eingang "amount" des unteren Sequenzenblocks verknüpft. Anschließend wird das Skript durch klicken auf "Run" ausgeführt
  
 {{:rvt_dynamo:p1con1.png?500|}} {{:rvt_dynamo:p1con1.png?500|}}
  
-Hält man den Mauszeiger über die Schrift "Auto" im Block, öffnet sich ein zusätzliches Fenster. Durch klicken der Pinnadel erhält man dauerhaften Einblick in den aktuellen Dateninhalt des Blocks. Desweiteren werden die Blocknamen mit zusätzlichen Informationen gefüllt, um sie zu späteren Zeitpunkt besser zu verstehen.+Hält man den Mauszeiger über die Schrift "Auto" im Block, öffnet sich ein zusätzliches Fenster. Durch klicken der Pinnadel erhält man dauerhaften Einblick in den aktuellen Dateninhalt des Blocks. Desweiteren werden die Blocknamen mit zusätzlichen Informationen gefüllt, um sie zu einem späteren Zeitpunkt besser zu verstehen.
  
-Im nächsten Schritt werden die erstellten Zahlenwerte den Koordinaten zugewiesen. Die Linie soll gerade in der Z-Achse verlaufen, so bekommen beide Punkte dieselben XY-Koordinaten zugewiesen. Der "z"-Eingang des oberen Blockswird mit dem Code Block "5" verknüpft, dadurch liegt der Punkt nun überhalb des anderen.+Im nächsten Schritt werden die erstellten Zahlenwerte den Koordinaten zugewiesen. Die Linie soll gerade in der Z-Achse verlaufen. So bekommen beide Punkte dieselben XY-Koordinaten zugewiesen. Der "z"-Eingang des oberen Blocks wird mit dem Code Block "5" verknüpft. Dadurch liegt der Punkt nun oberhalb des anderen.
  
 Anschließend wird in den Blöcken der Punkterstellung, jeweils mit der rechten Maustaste geklickt. Im folgenden Menü wird unter "Lacing", "Cross Product" ausgewählt. Dies ermöglicht den Blöcken das Kreuzprodukt aus den eintreffenden Anschlüssen (Zahlen) für die Koordinaten zu bilden. Anschließend wird in den Blöcken der Punkterstellung, jeweils mit der rechten Maustaste geklickt. Im folgenden Menü wird unter "Lacing", "Cross Product" ausgewählt. Dies ermöglicht den Blöcken das Kreuzprodukt aus den eintreffenden Anschlüssen (Zahlen) für die Koordinaten zu bilden.
Zeile 102: Zeile 110:
 {{:rvt_dynamo:p1con2.png?500|}} {{:rvt_dynamo:p1con2.png?500|}}
  
-Um die Zwischenergebnisse in Dynamo zu überprüfen kann per [[Shortcuts]] "Ctrl+B" in den 3D-Bereich gewechselt werden.+Um die Zwischenergebnisse in Dynamo zu überprüfenkann per [[Shortcuts]] "Ctrl+B" in den 3D-Bereich gewechselt werden.
  
 {{:rvt_dynamo:p13d1.png?500|}} {{:rvt_dynamo:p13d1.png?500|}}
  
-Durch erneutes Ausführen der Kombination kehrt man zurück.+Durch erneutes Ausführen der Tastenkombination kehrt man zurück.
  
-Die Richtung der Stütze soll in Richtung der positiven Z-Achse verlaufen. Deswegen fungieren die Punkte auf der Z = Ebene als "endPoint" und die der Z = 0 Ebene als "startPoint".+Die Richtung der Stütze soll in Richtung der positiven Z-Achse verlaufen. Deswegen fungieren die Punkte auf der Z=5m Ebene als "endPoint" und die der Z=0 Ebene als "startPoint".
  
 {{:rvt_dynamo:p1con3.png?500|}} {{:rvt_dynamo:p1con3.png?500|}}
  
-Um letztendlich die Stützen zu erstellen verknüpft man: "Line" mit "curve" , "Levels" mit "level" und "Column Types" mit "structuralColumnType"+Um die Stützen zu erstellenverknüpft man: "Line" mit "curve" , "Levels" mit "level" und "Column Types" mit "structuralColumnType"
  
 {{:rvt_dynamo:p1con4.png?500|}} {{:rvt_dynamo:p1con4.png?500|}}
Zeile 118: Zeile 126:
 Das Endergebnis kann jetzt in Revit überprüft werden. Das Endergebnis kann jetzt in Revit überprüft werden.
  
-{{:rvt_dynamo:p1revit1.png?500|}}+{{:rvt_dynamo:p1revit1.png?800|}}
  
-Der aktuelle Zwischenstand erstellt die Stützen in das vorgegebene Raster. Eine weitere Automatisierungsoption besteht darin die Stützen immer zwischen zwei ausgewählten Ebenen zu generieren.  +Der aktuelle Zwischenstand erstellt die Stützen in das vorgegebene Raster. Eine weitere Automatisierungsoption besteht darindie Stützen immer zwischen zwei ausgewählten Ebenen zu generieren.  
- +So bekommen die Linien intelligente Höhenkoordinaten und sind dadurch im Bezug zu den Ebenen performant. Dies wird nachfolgend genauer erklärt.
-Dadurch bekommen die Linien intelligente Höhenkoordinaten und sind dadurch im Bezug zu den Ebenen performant. Dies wird nun erklärt.+
  
 Zunächst findet das Laden folgender Blöcke statt:  Zunächst findet das Laden folgender Blöcke statt: 
Zeile 135: Zeile 142:
  
  
-Jetzt können die erstellten Blöcke in das vorhandene Script eingebunden werden. Erklärung:+Jetzt können die erstellten Blöcke in das vorhandene Skript eingebunden werden. Erklärung:
  
-Der neue "Level" Block definiert immer die obere Begrenzung der Stütze und bekommt bspw. "Ebene 3" zugewiesen. Beide Ebenenblöcke werden mit jeweils einem "Level.Elevation" Block verbunden. So können die Höhenkoordinaten herausgelesen werdenauf welchen sich die Ebenen befinden.+Der neue "Level" Block definiert immer die obere Begrenzung der Stütze und bekommt bspw. "Ebene 3" zugewiesen. Beide Ebenenblöcke werden mit jeweils einem "Level.Elevation" Block verbunden. So können die Höhenkoordinaten herausgelesen werden auf welchen sich die Ebenen befinden.
  
-Der "Level.Elevation Höhe oben"  Block wird nun mit der obenliegenden Z-Koordinaten der Punkte verknüpft und "Level.Elevation Höhe unten" mit den untenliegenden Z-Koordinaten der Punkte verbunden. Diese Koordinaten sind jetzt performant im Bezug zu den Ebenen+Der "Level.Elevation Höhe oben"  Block wird nun mit den obenliegenden Z-Koordinaten der Punkte verknüpft und "Level.Elevation Höhe unten" mit den untenliegenden Z-Koordinaten der Punkte verbunden. Diese Koordinaten sind jetzt performant im Bezug zu den Ebenen.
- +
-Der Code Block mit dem Wert 5 kann gelöscht werden.+
  
 {{:rvt_dynamo:p1con5.png?800|}}  {{:rvt_dynamo:p1con5.png?800|}} 
  
-Es ist außerdem zu sehen, dass der Code Block nichtmehr mit dem "z"-Anschluss verbunden ist. Eingänge können jeweils immer nur durch einen Draht verbunden werden. Wird ein Draht durch einen anderen überschrieben, löst sich die Verbindung automatisch. Es ist jedoch möglich mehrere AUsgänge für unterschiedliche Eingänge zu definieren (siehe Block " Levels untere Ebene")..+Es ist außerdem zu sehen, dass der Code Block nicht mehr mit dem "z"-Anschluss verbunden ist. Eingänge können jeweils immer nur durch einen Draht verbunden werden. Wird ein Draht durch einen anderen überschrieben, löst sich die Verbindung automatisch. Es ist jedoch möglich mehrere Ausgänge für unterschiedliche Eingänge zu definieren (siehe Block " Levels untere Ebene"). Der Code Block mit dem Wert 5 kann gelöscht werden.
  
 Jetzt können zwei neue Ebenen ausgewählt werden, bspw. für die untere Ebene "Ebene -1" und die obere Ebene "Ebene 3". Jetzt können zwei neue Ebenen ausgewählt werden, bspw. für die untere Ebene "Ebene -1" und die obere Ebene "Ebene 3".
Zeile 155: Zeile 160:
 Man erkennt, dass die Koordinatenzuweisung erfolgreich über die Ebenen implementiert wurde.  Man erkennt, dass die Koordinatenzuweisung erfolgreich über die Ebenen implementiert wurde. 
  
-Wichtiger Hinweis!: Das Verschieben/Ändern der Ebenen in ihrere Höhe sollten vor dem ersten Erstellen der Stützen erfolgen. Es können Fehler auftretenwenn man die Stützen erstellt hat, anschließend die Ebenen in ihrere Höhe ändert und erneut erstellen lassen will.  +**Wichtiger Hinweis!:** Das Verschieben/Ändern der Ebenen in ihrer Höhe sollte vor dem ersten Erstellen der Stützen erfolgen. Es können Fehler auftreten wenn man die Stützen erstellt hat, und anschließend die Ebenen in ihrere Höhe ändert und erneut erstellen lassen will.  
  
-Zum Schluss wird das visuelle Programm in seiner Formatierung angepasst, damit es auch nach mehreren Monaten, verstanden werden kann, oder auch Dritten problemlos bearbeitet werden kann. +===== Fertigstellung =====
  
-Damit ein gute GLiederung der einzelnen Bereiche stattfindet, wurde folgende Gruppierung ausgewählt:+Zum Schluss wird das visuelle Programm in seiner Formatierung angepasst, damit es auch nach mehreren Monaten von Dritten bearbeitet und verstanden werden kann.  
 + 
 +Zur übersichtlichen Gliederung der einzelnen Bereiche , wurde folgende Gruppierung ausgewählt:
  
 {{:rvt_dynamo:p1con7.png?800|}}  {{:rvt_dynamo:p1con7.png?800|}} 
  
-Um eine ordentliche Struktur der Blöcke zu erzielen, kann man diese mit automatisch sortieren lassen. Dafür werden alle Blöcke markiert und durch Tastenkombination <kbd>Crtl</kbd> + <kbd>L</kbd> strukturiert.+Um eine anschauliche Struktur der Blöcke zu erzielen, kann man diese automatisch sortieren lassen. Dafür werden alle Blöcke markiert und durch Tastenkombination <kbd>Crtl</kbd> + <kbd>L</kbd> strukturiert. 
 + 
 +{{:rvt_dynamo:p1con8.png?800|}}  
 + 
 +Abschließend ist das Projekt zu speichern. 
 + 
 +Das fertige Dynamoskript kann nach Bedarf hier heruntergeladen werden: {{ rvt_dynamo:objekterstellung_.zip |Dynamoscript}}
  
 **Weiter zu** [[Parameterüberschreibung]] **Weiter zu** [[Parameterüberschreibung]]

QR-Code
QR-Code 03.1 Objekterstellung (erstellt für aktuelle Seite)