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: engineering.com
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: http://www.nbbj.com/about/digital-practice/
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
In the case of our study we will focus on measuring 4 concurrent goals;
Maximizing living room area
Maximizing back yard area
Minimizing front yard area
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;
Capturing site controls as scripted inputs
Beginning from a start point (origin)
Establishing a site boundary
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.
Looking a bit more like a house now at least.
Note that everything is still contained with Dynamo, the coding environment. Our study does not necessarily generate a house in Revit with walls, floors, rooms etc. This would require an additional 'back-end' that would likely need the same amount of coding again in order to facilitate.
This leads to a common narrative I try to promote to others - we are not typically setting up a workflow to automate the model setup process - the real value is derived from using the tools as planning and decision making aid. If you simply want an automated house layout, send some money overseas to an outsourcing firm instead - you will save time and money vs attempting to automate your design process.
Running and reviewing the study
Once we have set up our Dynamo script (and defined the inputs/outputs) we can export our study to the Generative Design tool itself. This process will also capture any graph dependencies such as custom packages that may be involved in the study (in our case, we used none). Note that if you are using the educational version of Revit 2021, you will only be able to run your study from within Dynamo itself.
The export and define study dialogues.
The tool presents us with a few methods to generate our study, each supporting a different means of generating and reviewing its results. In the case of Randomize, our inputs are generated at random and we will see every result generated. If we Optimize, Revit will create evolutionary 'sub-studies' from a set population size. If we use Cross product, Revit will exhaust every possible combination the study can produce.
Whilst there are some Evolutionary study types available (thanks Jacob from Autodesk for correcting me!), they are not as visibly exposed as such tools as Galapagos for Rhino 3d. This may leave more experienced generative designers wanting a bit more, but makes a basic user's experience easier in turn.
The result of our generative study.
Once the study is undertaken, we can review and filter the results. In the case of the above study, I have sorted results so that I see the studies which generated the most living room area first. As we would logically expect, the alfresco is not present in any of these outcomes (which lends to the question - did we even need to include it in the first place?).
I have also applied a filter on the third to last goal (GOAL_AreaLiving) to isolate a smaller sub-set of results for detailed review. By selecting one of these, I can review the inputs that generated the successful outcome which I can then use to inform my actual design. In the bottom right is an option to generate Revit elements, should the study be designed to allow this to occur.
Problems to Solutions
As previously mentioned, this study works with a predefined housing layout and known setback requirements. If I were to conduct this study with a different layout or planning requirements, I would probably need to edit the base script (or begin again). Generative studies are often tailored to very specific problems, so may not provide broad use cases beyond their initial setup.
In the case of the above study, the entire process took 3 hours to set up and conduct. Given this is for a very specific use case, it is unlikely we would have generated enough ROI on such a study to justify its setup. Whilst on the surface it may have 'wowed' a client, the conclusions drawn from the study are not revelations by any means:
If I want to make my living area larger, I should remove my Alfresco
Likewise, I should exclude the media room
Likewise, my rooms should all be as small as possible
To maximize my backyard, I should work hard to the front setbacks
I intentionally set up my study to demonstrate that if the goals are too simple, the results will be too predictable and not generate an outcome we could have simply predicted ourselves. Maybe we should have asked more specific questions like:
Which side of the house should my bedrooms be on?
How can I maximize sunlight to living areas?
Which results achieve the most cross ventilation?
What if I rearranged room locations in each case?
All of the above are more loaded questions, with less predictable outcomes. Each of these would also compound the complexity of the script to set up. Of them all, there must be a 'break-even' point identified for time invested vs results obtained.
Feedback from Autodesk
I'd like to add that the Dynamo development team got in touch with me privately in regards to my article and helped me make a few corrections to the contents - mostly semantic corrections. I thank them for their interest and assistance in providing the industry with correct information, and look forward to seeing where they develop the Generative Design tool to in future.
Conclusion: Question the answer
All of the above challenges lead me to the burning question, what is the problem that generative design ultimately solves for our industry? Are we ready for it, and if not when will we be?
Simply put, I believe that generative design does not answer any questions unless we ask the right ones in the first place. As is the case with BIM, generative design is far more than the tools - it is a process. The tools necessitate that the answers they provide must be to questions we cannot easily prove to our clients.
I commend all those out there leveraging generative design to improve their design workflows, but I encourage all those considering exploring this field to focus more on their questions, and less on their answers.
- Gavin Crump @ BIM Guru