A collection of packages to accelerate generative design workflows in Dynamo & Refinery.
There are currently 2 packages included in the toolkit, each focusing on enabling specific types of workflows:
- SpacePlanning Toolkit
- Massing Toolkit
The toolkit offers a range of nodes that help with general space-planning workflows in Dynamo and Revit.
optimization & design option generation
The toolkits are not yet available on the Dynamo Package Manager. You can install them manually by following the instructions under the Alternative installation methods section at the end of this document.
This repository has quite a few sample files provided to help you get started with each of the toolkits.
It is highly recommed starting with the samples as they contain detailed notes and instructions on how to use each of the nodes. Feel free to open an issue or submit a PR if you'd like to see further some documentation added here.
There are 11 sample Dynamo graphs included with the SpacePlanningToolkit package, all made to work with Dynamo 2.0
.
You can find the samples in this repository's samples folder
folder, as well as and in the extra
folder of the package you download using the Dynamo Package Manager, typically found here : %appdata%\Dynamo\Dynamo Revit\2\packages\GenerativeToolkit
The samples shows a simple example of how each node in the toolkit works. Some of the samples will have a Revit version (marked with (RVT)), and some also have a version setup to be used with Refinery (marked with (RefineryVersion)) :
Index graph showing all available nodes in the GenerativeToolkit packages.
The sample folder contains 3 different graphs showing different ways to use the Binpacking2D nodes. The binpacking 2D nodes requriers 3 inputs, a list of rectangles to pack, a single Rectangle to pack into and a placement method. There are 3 different placement methods in the package:
- Best Shortest Side Fits - Will pack the rectangle into the free area where it minimizes the length of the areas shortest side.
- Best Longest Side Fits - Will pack the rectangle into the free area where it minimizes the length of the areas longest side.
- Best Area Fits - Will pack the rectangle into the free area where the remaining area after the placement is minimized.
There are 3 different sample workflows in the sample folder:
- GenerativeToolkit_Binpacking2DTest_BAF show the result of packing rectangles with the Best Area Fits placement method, and different ways of sorting the rectangles to pack.
- GenerativeToolkit_Binpacking2DTest_BLSF show the result of packing rectangles with the Best Long Side Fits placement method, and different ways of sorting the rectangles to pack.
- GenerativeToolkit_Binpacking2DTest_BSSF show the result of packing rectangles with the Best Short Side Fits placement method, and different ways of sorting the rectangles to pack.
This sample shows how the Binpacking3D node works. The node requires a Bin as a Cuboid and a list of Items also as Cuboids. The node will take the items and pack as many as possible into the Bin Cuboid. The sample displays the final pack and will also show which items has been packed (green cuboids) and which items hasn't (red cuboids).
The SurfaceDivision node will take any Surface and divided it based on U and V parameters.
The GeometricMedian node takes a list of sample point and finds the point that minimizes the distance to all other points. In the sample file 5 different examples are shown.
The Isovist.FromPoint node takes a boundary polygon, internal polygons and a origin point and calculates the visible area from that point.
The Openess node takes a boundary polygon, obstacle polygons and a Surface and calculates how much of the surface perimeter is enclosed by a obstacle.
The sample folder contains 2 versions of this sample, a Sandbox version and a Revit version.
The Shortest Path node will calculate the path between two points with the minimum distance.
Views to Outside will calculate in precentage how much views to outside there is from a origin point. Views to outside is represented by line segments.
The sample folder contains 3 versions of this sample, a Sandbox version, a Revit version and a version set up to be used in Refinery.
Visible Points calculates the amount of visible points from a origin point. The points can represent what ever you want them to be, it could be "how much of this space (represented by points) is visible form this point" or "How many other desks (represented with points) are visible from this point".
The sample folder contains 2 versions of this sample, a Sandbox version and a version set up to be used in Refinery.
The ContrastyColorRange node returns a given amount of colors in a random order which all are visually distinct from each other. The maximum colors that can be created right now is 19.
The GenerativeToolkit is organized in 4 categories, based on their use in a Generative Design process :
Generate
: In this category you can find nodes to help generate design options.Analyse
: The designs generated in the previous step can now be measured, or analyzed on how well they achieve goals defined by the designer. This category contains nodes to help with that.Rank
: Based on the results of the analysis, design options can be ordered or ranked. This category has nodes for that.Explore
: In Explore, nodes that helps visualize result are placed.
If you prefer to install one of the more experimental/work-in-progress builds, you can still follow the instructions below.
- Download the latest release from the Releases page
- unzip the downloaded file, we recommend using 7zip
- once unzipped, double-check that all
.dll
files in the package'sbin
folder have been unblocked - copy the package folder to the location of your Dynamo packages :
%appdata%\Dynamo\Dynamo Core\2\packages
for Dynamo Sandbox, replacing2
with your version of Dynamo%appdata%\Dynamo\Dynamo Revit\2\packages
for Dynamo for Revit, replacing2
with your version of Dynamo
- start Dynamo, the package should now be listed as in the library and in Dynamo's
Package Manager
This project requires the following applications or libraries be installed :
Dynamo : version 2.1 or later
.NET : version 4.7 or later
Please note the project has no dependency to Revit and its APIs, so it will happily run in Dynamo Sandbox or Dynamo Studio.
Please read CONTRIBUTING.md for details on how to contribute to this package. Please also read the CODE OF CONDUCT.md.
This project is licensed under the Apache 2.0 License - see the LICENSE FILE for details.