In the AEC industry, we're challenged to consider many design options, to find the fittest solution in the shortest time, and to be leaders in economic and sustainable designs. In this article, you’ll discover how to generate better design outcomes using computational and generative design techniques. You’ll get an overview of how ‘traditional" design improves with design automation, computational modeling, and generative design methods with Dynamo and Refinery. All of this will be explained using architectural, urban planning, and structural examples.
Imagine you're planning the interior of an office building. In one scenario, your first step is to define the design parameters by describing the amount of light you want for desks depending on the season, the desired views for conference rooms, and the maximum amount you want to spend for construction. After you define the criteria, your design tools generate all the best possible outcomes with a single analysis and evaluate the alternatives. This all takes place in a fraction of the time that it normally takes you to manually arrive at one or two best-guess approximations. In the other scenario, you sit down and manually calculate how your design parameters impact other aspects of the office, building like energy loads and construction costs. You tediously go through the hundreds of location variables—kitchens, bathrooms, desks, or communal space placements—produced by your choices as the design develops.
Generative design is about providing practitioners with the ability to quickly explore, optimize, and make informed decisions to complex design problems.
This entire process takes days or weeks as you review the options. How might it change the way you design if, like in the first scenario, your software could help discover the implications of the goals you define instead?
Now think about a typical construction project and shifting your approach to the actual procedure of building—and not just what you’re building, but how it's built. Cost overruns and waste are always the enemies of construction. What if you could mitigate these potential risk factors with better recommendations on materials or by scheduling and sequencing job site work? What is the right strategy for placing precast concrete panels? Or the optimum placement of a crane? A software algorithm can test numerous scenarios for potential solutions to find the best one.
These are the objectives of generative design, a technique that uses computation to augment the designer’s ability to define, explore, and choose alternatives through automation. Generative design is more than a methodology; it embodies many applications and techniques. It will continue to grow more potent and useful with technology advancements such as artificial intelligence and machine learning. But, at its heart, generative design is about providing practitioners with the ability to quickly explore, optimize, and make informed decisions to complex design problems.
Progression from Traditional to Generative Design
The design technology in the AEC industry is progressing towards the generative design model. The biggest difference can be seen in the mindset of a designer.
In Traditional Design, a designer uses basic techniques like sketching to describe the idea that is inside the mind; for example, "drawing of a wall with a door in it." With AutoCAD the designer can apply Computer Aided Drafting.
In Parametric Design, the user defines relationships between traditionally drawn or sculpted elements; for example, “this door depends upon this wall and will move with it.” Contrast this with the traditional CAD environment, where each point, line, text, etc. has no relationship to any other. In the parametric design environment, a change to one piece of data creates changes in other pieces of data. Generally, these systems are limited by the ability to make direct relationships, such as a window that depends on a hosted relationship to a wall. In the building industry, Revit can be used for this stage.
With Design Automation, the user gets the ability to automate tasks within parametric models by driving the parameters with automated scripts; for example, “create a door for every X meter of a wall.” The geometry and data are outcomes of the automatic execution of a set of rules and can use traditional modeling elements as inputs. This technique is a level of abstraction from parametric modeling where arbitrary pieces of data are related to others. Typically, this can be done with Revit and Dynamo.
In Computational Modeling, the user explicitly describes a process to create a design outcome; for example, “create a number of doors in the wall and evaluate how many exits per unit length.” This method is very close to design automation, except that here we also have the possibility to evaluate the design outcomes.
It is a generalized way to create data as well as relationships between data. The kinds of relationships that can be defined are versatile (if-then-else, looping, recursive) and users can create more customized reactions to changes in the system.
With Option Generation, the user explores variations of computed rules given different starting points for the calculations; for example, “show me all the valid places a door could be placed on this wall.” Given a parametric model or computation environment, there are an infinite number of variations you could get by changing and combining inputs. The resulting variations are not distinguished based on one being any better than another. The user is given an opportunity to sort and choose desired variation(s).
With Design Optimization, the user defines explicit goals and a computational or parametric model is automatically explored for states that fit those goals; for example, “find the valid places where doors on this wall are closest to exits.”
Given a parametric model or computation environment, you can display the examples of possible states of the model that have certain desirable characteristics.
Ultimately, with Machine Learning (ML), the user states outcomes and the system returns conforming results based on historical data; for example, “lay out interior doors for a hospital egress.” Given a desirable set of characteristics, generate a design or a set of designs that fit the description. Instead of starting from a parametric or computational model, ML-based tools use large “learning” datasets where the computer finds patterns that are inferred instead of being explicitly stated.
The products in that area, within the D&M and AEC industries, that Autodesk is providing, are illustrated below:
Generative Design as an Autodesk Product Strategy
Generative design is guiding Autodesk’s strategy for creating a better world by encoding professional knowledge. Autodesk’s generative design solutions have three characteristics:
• Establish a set of rules that express project design intent and constraints.
• Display the possible outcomes of rules systems to facilitate decision making.
• Capture and preserve information for reuse by industry-specific applications.
The application of Autodesk generative design solutions results in higher quality work, greater speed/productivity, and lower costs. While there are a number of products using some combination of these approaches, we’ll talk in more detail about Project Refinery, a beta application that gives users the power to quickly explore and optimize design logic that is encoded in Dynamo.
Rules definition in Refinery comes primarily from Dynamo, a generalized programming environment that allows users to create designs in a step-wise fashion (like a recipe: first do this, then this, etc.) and evaluate them (how big is my result, how far is it from a target geometry, etc.). Project Refinery then executes these algorithms many times to either explore random variations on the base algorithm, systematically exercise all the possible inputs and outputs to the system, or evolve the system by intelligently changing inputs to “find” targeted performance metrics.
Project Refinery also provides another set of features specifically tailored for users to visualize and understand the outputs of the generative systems. Generative systems that have more than one “optimal” goal can product results that are confusing to understand. Refinery displays numerical, graphical, and geometric results to allow for sorting and comparison. Users can choose options that satisfy requirements or aesthetic sensibilities that might not have been defined in the algorithms themselves.
While drawing on paper or using generalized programming languages or CAD are a perfectly reasonable part of a generative process, Refinery attempts to drive decisions into practice by being directly connected to mainstream building production applications. The more a generative design process for AEC is deeply connected to existing and emerging project delivery toolchains, the more the user can drive project delivery with optimal outcomes. Current beta workflows are part of a Revit delivery process, and the underlying architecture of the application will allow for rapid integration into additional applications in the future (such as FormIt and Civil 3D).
Goals, Generators, Evaluators: A Generative Design Mental Model
While this is not the only way to think about generative design processes, we have found that a concept of 'goals, generators, and evaluators' has been a helpful framework.
Goals are a statement of why we are designing something in the first place, the North Star ideas we are pursuing: “a room with a connection to the outdoors;” “a storefront that is attractive to passers-by.”
Evaluators determine what we will measure our design against to determine if it works: “all occupants should have visual access to the windows;” “more than 75% of pedestrians on this section of street should be able to read the building store signage.”
Generators are how we are going to go about making possible design solutions: “iteratively place desks around the room by random UV coordinates;” “increase size of signage until visible from all angles.”
In the broad sense, a generative design can be simply the creation and execution of generators. An example of a simple generator would be explorations or "optioneering" done with a Dynamo graph with a slider. A user could move a slider back and forth, seeing options and looking for something that feels right.
Generators become most useful when harnessed to evaluators that are informed by goals. In the absence of defined evaluation logic, a designer may generate lots of options and simply sort and examine the results. If you can measure what is important, you can filter out crappy options and start making decisions quickly.
Definition of Generative Design
Generative design is a goal-driven approach to design that uses automation to give designers and engineers better insight so they can make faster, more informed design decisions. Your specific design parameters are defined to generate many—even thousands—of potential solutions. You tell the software the results you want. With your guidance it arrives at the optimal design along with the data to prove which design performs best. Learn more about how Autodesk looks at generative design in the AEC industry.
Generative Design Process
Generative design allows for a more integrated workflow between human and computer, and as a result both are required to undertake a series of steps that allow the process to take place. These steps can be categorized into the following stages: generate, analyze, rank, evolve, explore, integrate.
This is the stage when design options are created or generated by the system, using algorithms and parameters specified by the designer.
The designs generated in the previous step are now measured or analyzed on how well they achieve goals defined by the designer.
Based on the results of the analysis, design options are ordered or ranked.
The process will use the ranking of the design options to figure out in which direction designs should be further developed or evolved.
Generated designs are compared or explored by the designer, inspecting both the geometry and evaluation results.
After choosing a favorite design option, the designer uses or integrates this design into the wider project or design work.
Here are more resources that may help explain some of the terminology and thinking around generative design techniques:
Generative Design in AEC with Project Refinery
Project Refinery is an Autodesk generative design beta for the AEC industry. It gives users the power to quickly explore, evaluate, and optimize their Dynamo designs.
Project Refinery lets you create design options, set goals, and optimize for those goals. When you choose to maximize or minimize designated outputs, Refinery will return the best options. It also allows users to use the power of the Dynamo Package Manager and run custom nodes, including Python nodes. Refinery runs locally on your computer and allows custom code to take part in design option generation.
Refinery will run in Dynamo for Revit or Dynamo Sandbox and includes a node to cache Revit data for use in option generation. Refinery is still a beta project. There are rough edges, but if you would like to try it out and work with us to advance generative design for AEC we would be thrilled. Get more information about Refinery and beta access.
Refinery uses the NSGA-II optimization algorithm (a type of genetic algorithm), which is a meta-heuristic optimization algorithm for multi-objective optimization. Genetic algorithms are commonly used to generate high-quality solutions to optimization and search problems by relying on bio-inspired operators such as mutation, crossover, and selection. A genetic algorithm is a population-based optimization. Population-based approaches maintain and improve multiple candidate solutions, often using population characteristics to guide the search. Each round of the optimization processed in the genetic algorithm is called a generation. So, when you set the generation value to 40, the process of selection, cross over, and mutation happens 40 times for each population of 40 designs. The seed simply says where the algorithm should start. If you keep the seed at 64 and then do another run with the same inputs, you should get the same answer.
The following examples are used to explain all the several phases to get yourself upskilled to learn about generative design.
The Dynamo scripts are documented and explained with ‘notes’ embedded in the script.
Example 1: Conceptual Tower Mass
This script allows a user to extract Revit geometry and data, run a set of optimization routines on it, explore results, make an informed decision, and return that data to the full BIM environment as Revit elements to continue on with the project development.
Evaluate massing options for a building in an urban site and optimize for the number of floors, floor area, and façade area. Evaluate the optimal designs in their urban context. The scoring is based on a given FAR (Floor Area Ratio).
The packages that need to be installed before running the script are:
This script has already been set to pull site information from the included Manhattan.rvt file. However, it can also be run outside of Revit in Dynamo Sandbox and in Refinery because the 'Data.Remember' node has encapsulated the essential data that was pulled from Revit.
You can try this same workflow on any Revit file that you can select a closed loop of model lines from, or generate the set of closed lines in Dynamo without Revit.
Zoning regulations cities stipulate a number of rules governing setbacks from street level and from a visible plane about 25 m above ground. While buildings have a certain allowable square footage for a given site, they are allowed more if the building grants access to a public plaza space. The custom node Building.ByPlazaSiteFAR has encoded some of these rules and can be opened and inspected. The user can manipulate these inputs to get the right balance of total area, exterior envelope, and other considerations.
Dynamo Script Overview
Edge lines in the Revit model are used to define a site boundary in the 'Pull Site and Plaza Information Out of Revit' group. This data is used to create the footprint of a proposed building. A Plaza Offset slider controls how much space is reserved for public use.
Manipulating this input will give various configurations of final building form with different trade-offs for Total Area, Floor Variance (how different each floor is from an average), Facade Area, number of floors, and number of areas that are still allowed by code but not used.
When a desired design is found, you can set 'Send to Revit' to True, which then creates Floors and Curtain Walls.
Download the data set for this example.
Want more? Download the class handout to see examples about structure waste optimization, light distribution, spatial truss optimization, tower crane positioning, urban planning, and parking layout.
Working as a technical sales specialist AEC for the Northern European region at Autodesk, Dieter is specialized in the products of the Computational Design and Engineering portfolio. Within that domain he helps customers to learn more about new and innovative workflows and solution strategies. He is an evangelist and big influencer of the power of generative and computational design in the AEC industry. He has given numerous presentations about these topics at conferences worldwide.