Over the last few months, Autodesk and matterlab have been working in collaboration to develop a collection of nodes that can be used as “lego-blocks” to help users define their own workflows. Each node provides key functionality to enable generative workflows that will help augment current design processes. These tools are now readily available to all users of Dynamo.


What is the Refinery Toolkit?

The Refinery Toolkit is a collection of packages to accelerate generative design workflows in Dynamo & Refinery. There are currently two different libraries in the Refinery Toolkit:


  • a Space Planning toolkit that contains algorithms to help you with generative space planning workflows, and;
  • a Massing toolkit that makes it easier and faster to perform massing analysis workflows.


Installing the Toolkit

The toolkit is now live on the Package Manager.

To install the toolkit simply search for Refinery Toolkit in the Package Manager and click install.



After installing the Refinery Toolkit package you will see a RefineryToolkit section under Add-ons in your library. This contains the two libraries currently available.



Using the Toolkit

The package comes with a number of sample files provided to help you get started with each of the libraries.

It is highly recommended to start 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 on the GitHub repo if you’d like to see further documentation added.

You can find the sample files in the package repository’s samples folder, as well as in the extra folder of the package when downloaded through the Dynamo Package Manager, typically found here : %appdata%\Dynamo\Dynamo Revit\2\packages\Refinery Toolkit

The samples show simple examples of how each node in the toolkit works. Some of the samples have a Revit version (marked with (RVT)) and some also have a version to be used directly with Refinery (marked with (RefineryVersion)).

Package structure

The RefineryToolkit 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 using the nodes in this category.
  • Explore : The explore section contains nodes that help visualize where results are placed.


The SpacePlanning Toolkit

The SpacePlanning Toolkit contains a collection of nodes to help you create and analyze generative space planning workflows. The toolkit will run in all versions of Dynamo.

The package currently contains 18 nodes including packing nodes for rectangles and cuboids, visibility analysis nodes and many more that will help to create exciting generative space planning workflows, see below a few examples of what you can do with the toolkit.


Packing algorithms are all about fitting items into a larger container; these algorithms are used across multiple industries to help solve and optimize packing problems.

There are two different packing methods in SpacePlanning toolkit, a Rectangular packer and a Cuboid packer. These can be used for things like exploring floor plan layouts or optimizing modular residential layouts as Team Binception did at the Toronto Dynamo + Generative Design Hackathon.

The Rectangular packer comes with 3 different packing strategies that determine how your rectangles are packed. These 3 strategies simply determine which free area the next rectangle gets packed into, meaning that each of these strategies will give you a different layout. Besides the 3 different packing strategies you can vary the layout by sorting the items, you need to pack differently. For example, you can sort them in ascending or descending order based on their area or sort using other methods. This provides countless possibilities when exploring different layouts.


Visibility analysis

Designers use lots of different tools and software to understand and assess the designs they create, whether that be the layout of an office or the design of a mechanical system. Analyzing how suitable a design is and whether it will function as needed can be tricky. Using visibility analysis graphs, designers can understand more about the space and make informed design decisions.

With this in mind, the toolkit aims to provide a selection of nodes to help in analyzing visibility. Using these nodes, there are 3 types of studies that can be performed currently. The Visibility.OfLinesFromOrigin lets you calculate the percentage of a line segment that is visible from a given point. This can be used to measure views to the outside, where the windows are represented by line segments as shown in the left most gif below. The Visibility.OfPointsFromOrigin is similar to the Visibility.OfLinesFromOrigin but instead of using line segments, it lets you analyse how many points are visible in a collection from a given point. This can help when placing objects that need visibility to certain interest areas. The final visibility node in the toolkit is the Visibility.IsovistFromPoint that creates an isovist from the given point. Isovists can be used to calculate the visible area of a space from a given point.

More samples

Have a peek at all the different sample files included in the SpacePlanning Toolkit here

More information

The Refinery Toolkit is open source and is available on GitHub, if you experience any issues with the nodes or have ideas for new nodes or library’s that should be added to the toolkit, please add them to the issues section.

You can also ask all your Refinery and RefineryToolkit related questions on the Project Refinery feedback site.