Spot on.
I’ve said this before, but incase someone somewhere hasn’t heard it yet, I’ll come out and say it bluntly here:
IF YOU DON’T KNOW DYNAMO YOU SHOULD NOT JUST DIVE INTO GENERATIVE DESIGN YET
Yes. I broke out all caps, the bold text AND the rarely seen big text there. It’s that important.
Generative Design is hard. The marketing videos may not make it look that way, but it is. This isn’t unique to the Autodesk toolset either; the Generative tools in other applications are equally complex. For reference, here is the code used to generate a meeting room in Hypar. You could argue that it is easier to leverage that particular code in Hypar, but if you wanted to layout the meeting room in a different style it’s going to take some significant effort.
Toward this end, I have often argued that it’s much harder for most AEC firms to do Generative Design than automating anything in Revit/Civil/whatnot (this includes stuff without an API to do it). This is because design is much more subjective than the processes we automate in Revit/Civil3D/whatnot. I’ll take automation of a task with clear rules over finding the perfect office layout algorithm any day as the former is a scientific problem and easily verifiable. But design is a wicked problem. If this wasn’t the case we’d all build/live in the exact same buildings… cook using the same tools… and they would all be the same color…
So the complexity of the thing you’re solving for is universally understood to be legitimately unsolvable universally. I do not recommend trying to tackle that without having mastered the underlaying tools which it builds upon. if you can’t get Dynamo to draw one bedroom, it’s going to be VERY hard to get 3 bedrooms, a hallway, and the overall footprint drawn in a good way. Instead of trying the hard stuff, take some baby steps.
What follows isn’t really my original idea so I won’t take that credit (hat tip to the entire AEC Generative Design Team), but I’m happy to frame it out as it helps to frame Generative Design in these terms.
A good technical progression for design tools likely goes something like this (with an Autodesk tool appended for references, where available):
- Pen and Pencil (Sharpie).
- CAD (AutoCAD).
- BIM (Revit).
- Process Automation (Dynamo).
- Optioneering (Generative Design’s “random” option).
- Design Optimization (Generative Design’s “optimize” method).
- Machine Learning (doesn’t exist as a scalable and functional tool, yet).
Steps 1-3 are manual, with a greater degree of automation added at each step (photocopies at 1, xrefs at 2, add-ins at 3). Steps 5-7 are flavors of generative design, where the automation is added again in increasing steps (layout just happens at step 5; the ‘good’ layouts are brought to the forefront at step 6; the process of asking for layouts is removed at step 7).
You hopefully noticed that I skipped #4. That’s because this is where a big shift in mindset happens, as we transitioned from ‘manually making and recording decisions of what should be built’ to ‘defining the process of making decisions and evaluating the outcomes’ between 3 and 5. You stop asking “where should the entry be?” and documenting that, and start asking “what things want to be near the entry?” and document that. Seems trivial, but it’s quite a step.
It’s also important to note that in no way are you turning over the act of making a decision; The resulting outcome can still be edited, and there isn’t anything preventing a designer from selecting the nth best outcome for your target metric if you like it better (although you may want to consider WHY you like it better so you can get that solution faster next time). All you are doing is removing SOME of the need for manually iterating the lines on paper/bits in the DWG, information in the model, and manually deciding ‘is it better now or did I like it more before?’. Design will always be a process, and the more we accept that the better. But I digress.
To get from 3 to 5:
- Learn the basic language (be it Dynamo or some other coding language)
- Learn to generate geometry in said language (keep it simple)
- Learn to introduce controlled chaos (randomization that isn’t random)
- Learn how to evaluate results (based on what you want to achieve)
- Learn to explore outcomes in your generative tool
- Remember you’re still in control
- Don’t forget to abstract the problem