Is generative design a problematic solution?

Updated: Sep 20, 2020

Recently, generative design entered the interest of the AEC industry mainstream when it was included in Revit 2021 as a new feature. In this article, we will explore the various challenges and opportunities offered by this way of working - many of which aren't often marketed openly!

Any given design process we engage in typically involves a myriad of interconnected variables, whether they be compliance driven or simply personal preference. Capturing all of this in a code-based workflow can often be challenging, if not impossible (at least to the time-frames we work within). Long story short, generative design is difficult.

Many industries have been benefiting from generative design for many years now (such as medical research and industrial design), however this is typically from a pure optimization perspective. Usually their generative goals are not focused on aesthetic appeal - a much harder aspect of a building to objectively measure. Generative outcomes are often quite 'ugly', just check out this study by Fusion 360's optimization of the Golden Gate bridge as evidence;

A bridge not even a mother could love.

Image source:

To further understand how difficult it has been for the AEC mainstream to embrace generative design, we only need look at the fact that there have been AEC Relevant tools able to work in a generative manner for at least a decade now. Will another tool entering the industry change this, or are we simply witnessing a hype cycle?

Barriers to Implementation

Generative design faces many barriers to realized success, but the primary one is probably perceived return on investment. If a generative study cannot save time or money in a provable manner, it is difficult to take it beyond a curiosity. One way to combat this is to develop generative tools that can assist on a wide variety of projects, but in this case we encounter another issue - generative outcomes are often overly simplified, and cannot handle later 'exceptions' to their predefined rules.

An example of digital dashboards set up by NBBJ to package generative and feasibility based studies into a tool for their staff to leverage.

Image source:

Some companies have successfully developed generative tools for their own internal use - some prominent examples being the dashboards of NBBJ Digital or Gensler's forays into modular building generation. In both cases, the setup and management of these systems required a significant investment in terms of time, maintenance and staffing in order to generate a significant return on investment. AEC firms are not usually known for taking such 'deep dives' into the fiscally unknown - but examples like these have proven this is usually the only way to get started.

Generative Design LT

It is worth noting that nearly all major firms investing in generative design are not using the newly introduced tool in Revit to make their studies (and I expect they never will). Whilst the newly added tool is a welcome addition to the collection of 'nobs and whistles' progressively being grafted onto Revit, I believe its true benefit is simply introducing the concept of generative design to the unaware. From here, I expect most will move to other more fit for purpose platforms once they encounter some limitations.

Whilst it may appear to be a game changer in marketing videos, it must be questioned if Revit will become a recognized leader for Generative design.

Video source: YouTube

The primary limitation of Revit's Generative Design tool is that it relies on Dynamo's ASM (Autodesk shape modeler) geometry engine, as well as Dynamo itself for its execution. No matter how smitten users may be with Dynamo, few will defend the speed and ease of using it to generate complex geometric forms that a generative study would typically rely upon. The Dynamo developers are working on improving geometry processing speed, but in the meantime it may present a barrier for many users.

Historically, AEC users have leveraged Rhino 3D and its scripting environment Grasshopper to produce generative tools and studies. Such add-ons as Galapagos (integrated since v5), Wallacei and Octopus provide a wide variety of methods by which to create complex and meaningful studies, further enhanced by analytical add-ons such as Ladybug tools. The Human UI add-on also provides the ability to flexibly design custom user interfaces (such as the one previously shown by NBBJ).

In comparison, the Generative Design tool in Revit has a restricted UI, as well as 3 pre-defined methods of undertaking and filtering study results - limited potential with the trade-off of greater ease of use. The types of studies which are used to market the tool must also be scrutinized - furniture layout and the optimization of three boxes. One could argue that these are telling of the tools self-aware nature of its inherent limitations.

Setting up a Generative Design study

Note that the script used in this article is available for download here.

Let us imagine we are designing a simple single story residential dwelling. The script we will be using to undertake a generative study in this case looks a bit like this;

And this is just a simple study!

All generative studies rely on the measurement of fitness for numerical goals. These goals come in many forms, but ultimately they will be the key to defining how we develop and review our study - the end justifies the means. Such goals we may wish to measure are;

  • Space planning fitness

  • Maximizing areas

  • Minimizing areas

In the case of our study we will focus on measuring 4 concurrent goals;

  1. Maximizing living room area

  2. Maximizing back yard area

  3. Minimizing front yard area

  4. Minimizing corridor area

It is important to note that our script uses a predefined spatial layout (e.g. the master bedroom is always at the front of the house). Whilst we will allow a range of flexibility to the sizes of rooms in the generated layout, we will not give the script the ability to rearrange these spaces at will. Such a change to our study would at the very least double the complexity of how our study is conducted and built.

Establishing Initial Constraints

Before we even begin the design and layout process, we have to contend with the following development constraints that are beyond our control;

- Height restrictions

- Front, rear and side setbacks

- Maximum and minimum areas

- Other LEP/DCP requirements

These must all be captured in an initial portion of a generative design study in a scripted form. In the case of our hypothetical study this is achieved by;

  1. Capturing site controls as scripted inputs

  2. Beginning from a start point (origin)

  3. Establishing a site boundary

  4. Establishing a compliant building outline

The script portion that handles this part of our study looks like this;

All this just to create a box and a line!

If this already looks too complex for your liking, this is just the tip of the iceberg.

Introducing the house contents

Once the boundaries of the study are established, the remainder of the script deals with working inwards of these boundaries to script the layout of our house. Note that we cannot simply model our house like we would in Revit - a generative study requires a fully coded workflow.

The requirement of coding a solution is often the main stumbling point for newcomers to generative design - they only see what the marketing shows, which is a nice end product and a clean user interface; how complex can it really be? Very complex, it turns out.

By working inwards of our building boundary and corner points, we can code all of the rooms into our study as rectangles which can report their areas - from this we can generate what is leftover (the living area). Note that we are also introducing some optional criteria - the Alfresco at the rear can be combined to the living space, and the third room on the right can be omitted (a media room adjacent to bedroom 2 and 3).

Well, that got a bit more complex!

As per before, if the above is looking too complex I have some bad news for you - we are not done yet. We still need to visualize our results and measure our goals.

Finishing the study

Whilst so far we have been viewing our study in a coded format, we must construct a visually discernible outcome at the end of our study. We could simply report back the numerical results, however most users require visual aid to interpret the numerical goals/fitness.