Blog
- Programmierung
Generative Design III
Baumplatzierungstool
Im heutigen Anwendungsfall zeigen wir eine Möglichkeit, wie mit Generative Design Bäume auf einer Geschossdecke platziert werden können.
Der erste Teil von Generative Design handelte von Parametern und Algorithmen. Der zweite Teil behandelte die Solver-Funktionen
Für alle, die die ersten beiden Teile verpasst haben, hier die Links:
![Generative Design Baumplatzierungstool](https://cms.bimsurround.com/uploads/images/_1920xAUTO_crop_center-center_none/Generative-Design-Baumplatzierungstool.jpg)
Inputs
Der Perimeter und die Topografie werden in Form einer zusammenhängenden Geschossdecke in das Skript gespiesen. Freihalteflächen finden ihren Weg mithilfe von Detailelementen (2D Flächen) in das Skript. Bei den Freihalteflächen handelt es sich um Bereiche, in denen keine Bäume entstehen sollen. Als dritter Input werden die Bäume (Familien) bestimmt.
Beschränkungen
Der Abstand zur Perimeter-Grenze und auch der Abstand zu den Freihalteflächen sind als Beschränkung gedacht. So kann zum Beispiel ein Grenzabstand von 5 Meter festgelegt werden. Der Grenzabstand bezieht sich dabei immer auf Mitte des Baumstamms.
Weiter können für vier Baumkategorien der Erstellungspreis und der Radius der jeweiligen Baumkategorie festgelegt werden. Durch den Radius wird später eruiert, welcher Baum wo stehen kann.
Variablen
Das Skript verfügt insgesamt über 22 verschiedene Variablen, welche in vier Gruppen aufgeteilt werden können:
Gerüstbildner
Auf einer Geraden in X-Richtung werden Punkte mit unterschiedlichem Abstand erstellt. Mit den Variablen wird die Punktanzahl, der minimale und der maximale Abstand der Punkte zueinander und der Seed bestimmt. Jeder dieser Punkte wird mit demselben Prinzip in Y-Richtung skaliert. Sind das Minimum und das Maximum des Abstandes zufälligerweise gleich gross, entsteht eine rasterförmige Verteilung, ansonsten sind die Bäume zufällig verteilt.
Ein Random Seed ist meist ein zufällig generierter Zahlenwert. Je nach Programmiersprache wird dieser Seed unterschiedlich eruiert. In Dynamo wird der Zahlenwert anhand eines Initialzahlenwertes definiert.
![Generative Design Punkte in X Richtung](https://cms.bimsurround.com/uploads/images/_1920xAUTO_crop_center-center_none/Generative-Design-Punkte-in-X-Richtung.jpg)
![Generative Design Punkte in Y Richtung](https://cms.bimsurround.com/uploads/images/_1920xAUTO_crop_center-center_none/Generative-Design-Punkte-in-Y-Richtung.jpg)
Rotation
Die erstellten Punkte werden zweimal rotiert. Das erste Mal befindet sich der Rotationspunkt in der Mitte des Perimeters. Das zweite Mal wird der Rotationspunkt in der Mitte aller Punkte gewählt.
Verschiebung
Nach jeder Rotation wird jeder N’te Punkte in X-Richtung verschoben. Als variabel sind hierbei N, der Versatz vom Startpunkt und die Distanz, in der die Punkte verschoben werden. Punkte, welche sich nun ausserhalb des Perimeters oder innerhalb von Freihaltezonen befinden, werden gelöscht.
Baumschlüssel
Der Baumschlüssel regelt die Zuordnung der Bäume zu den Punkten. Um jeden Punkt wird ein Kreis mit der Baumgrösse der Kategorie 1 gelegt. Jeder Kreis, der eine Überschneidung zu einem anderen Kreis aufweist, wird automatisch der Baumkategorie 1 zugewiesen. Die restlichen Punkte bleiben im System und es wird ein Kreis mit dem Radius der Grössenkategorie 2 um die Punkte erstellt. Bei einer Überschneidung der Kreise wird der Punkt nicht automatisch der Kategorie 2 zugeordnet, da auf einem Standort der Kategorie 2 auch ein Baum der Kategorie 1 Platz hat. Diese Punkte durchlaufen deshalb den Baumverteilschlüssel, in welchem ein Prozentsatz der Punkte als Kategorie 1 und der Rest als Kategorie 2 definiert wird.
Dieser Zyklus geht mit den restlichen Punkten so weiter, bis allen Punkten eine Grösse zugeordnet wurde.
Elevators
Das Skript kann über folgende Parameter ausgewertet werden:
- Baumanzahl: Die Anzahl der Bäume, welche erstellt wird.
- Prozentueller Flächenanteil: Wie viel Prozent der Fläche ist mit Bäumen bedeckt.
- Erstellungskosten: Eine erste Kostenschätzung der Erstellungskosten Bäume pro Kategorie: Die Anzahl Bäume der einzelnen Kategorien.
![Generative Design Auswertung Baumtool](https://cms.bimsurround.com/uploads/images/_1920xAUTO_crop_center-center_none/Generative-Design-Auswertung-Baumtool.jpg)
Visualisierung
In der Dynamo-Voransicht werden die Bäume als Kreis dargestellt. Die Kreise der verschiedenen Kategorien werden mit unterschiedlichen Grüntönen gefüllt. Zur Orientierung wird zusätzlich die Perimeter-Grenze dargestellt.
Solver
Das Skript ist mit seinen diversen Random Seeds perfekt für ein Variantenstudium mit dem Zufälligen-Solver. Da das Skript aber auch über Evaluators verfügt, kann das Skript auch für eine Optimierung verwendet werden. Die Evaluators können bei der Optimierung auch so eingestellt werden, dass das Ergebnis in einem bestimmten Bereich liegt. Zum Beispiel 20 Bäume der Kategorie 4 und 15 Bäume der Kategorie 3.
![Generative Design Baumplatzierungstool Ansicht Revit](https://cms.bimsurround.com/uploads/images/_1920xAUTO_crop_center-center_none/Generative-Design-Baumplatzierungstool-Ansicht-Revit.jpg)
Auswertung
Über das Generative Design Tool können die einzelnen Varianten gefiltert und sortiert werden. Hat man eine ansprechende Variante gefunden, können die Bäume mit einem Mausklick in Revit geladen und bearbeitet werden. Indem mehrere Entwurfsoptionen erstellt werden, können die Bestvarianten einfach miteinander verglichen werden.
Wir freuen uns bereits, das Skript einem Praxistest zu unterziehen und wer weiss vielleicht finde ich in meiner Bachelorarbeit noch Zeit das Skript zu verbessern. Ich bedanke mich nochmals bei Prof. Christian Graf und Roger Bräm für das Ermöglichen und Betreuen dieser interdisziplinären Vertiefungsarbeit.
Fortsetzung mit Erfahrungen aus der Praxis wird folgen.
![Generative Design Baumplatzierungstool Enscape](https://cms.bimsurround.com/uploads/images/_1920xAUTO_crop_center-center_none/Generative-Design-Baumplatzierungstool-Enscape.jpg)