GD study not generating all possible outcomes

I understood from the below how GD works:

I’m not sure if that’s the cause the GD study isn’t generating all possible design alternatives. I have a variable input which is represented by a Number Slider. Apparently, the GD study is not taking all possible values for this slider even though I have the right step included. Is there a way I can force my Dynamo graph to test all possible values for this slider while varying other inputs to get valid outcomes?

Thank you in advance for your help!

Optimize and Randomize both use randomly generated input values based on your population size. It’s not meant to use every value possible. If you’re using Cross Product you can specify the number of unique variations up to 10 values per variable.


The cross product study doesn’t have any optimization goal though (maximize or minimize). Is there a way I can work around my problem and force the optimize GD study to consider all possible values for an input node?

I don’t believe so. I only mentioned Cross Product because it is the only time you can force specific inputs (to a degree). I understand why you want to use all inputs when optimizing a solution, but the whole point of an evolutionary solver is to work your way to a solution based on increasingly effective variations. If you could force the model to use all inputs then there would be no need to continue generating additional evolutions.

The generative design process is just that, a process. It might not be solved on the first try. Part of creating a GD graph is defining a fitness test that will allow your variations to progress to an acceptable solution. You may not always get this perfect, but that’s OK. You can run as many evolutions as you want with as large of a population as you want. It takes some trial and error at times. Don’t feel like you have to get it right the first time every time.

1 Like

Yes I got your point. I still think of my problem as a generative design problem based on the concept of evolution, because although I want all the variations of a specific input to be taken into consideration, the associated inputs will be variable with every iteration. Anyway, thank you for your prompt responses!

I totally agree. And it would be nice, but unfortunately Autodesk GD doesn’t work that way currently. If you describe what exactly you’re trying to solve we might be able to offer some suggestions to get you closer.

I have a list of buildings’ layout options that I need to relocate taking into consideration the buildable surface I have. So, the GD study basically is changing the X and Y coordinates of the building’s layout and its rotation (this is probably the core of my GD study nothing more complicated). I want the GD study to generate all the possible design options, which is taking every possible layout and relocating it as needed (based on some goals and constraints). The number slider that I have is helping in switching from one layout option to another. I hope this description helps…

Why do you need every variation of one input then? That makes it sound like you need an optimized solution for each of those variations individually, which is not possible with a single solver. If that variable can’t be quantified in your fitness function then those changes don’t really matter (in terms of optimization) and could be addressed separately. If they are quantifiable then you should be able to just let the optimization do its thing.

That’s exactly what I was thinking about. But I was wondering if there is a way to do a single solver for all at the same time. Thank you for helping me in my thinking. I wasn’t sure if I’m on the right track to be honest.

1 Like

It’s possible in theory, but incredibly inefficient. I can’t think of a way to make it work that would be less work than just individual solvers.

Yes I’m still thinking about how I can efficiently try all layouts at the same time. I don’t know if a certain loop condition would do the trick…

To have EVERY building option be optimized onto one site, EVERY building option will need it’s own inputs to drive the model, and it’s own outputs to evaluate the result.

This graph shows use of GD to take a known building (via the input slider) and position it on a site in an optimal location relative to solar performance, fit on site, and built area. The evaluations aren’t ‘real’ by any means, but it should get the point across. The graph was built in Dynamo 2.11, and requires both the Generative Design and the Solar Analysis for Dynamo package, but should run in any version of Dynamo which takese the current built of Generative Design (ie: Sandbox, FormIt, Civil 3D) once the packages are setup.

Single Building Locator + Selector V1.dyn (122.5 KB)

The Graph:

Resulting geometry display:

In Generative Design:

This will return a single output for the site, showing the best possible outcome for each metric relative to the intended variables. As such the building with the smallest footprint tends to win the day as it will perform much better on the solar analysis. To make this work with each building on site, there are a few changes which need to be made as I outlined above. Each building needs an input, so instead of 3 variables (U location, V location, and rotation) you need to have 3*<building_count> variables (a U, V and rotation for each). Also instead of 3 outputs, you need 3 outputs per building (though area becomes redundant as each building’s area will be consistent), and an ‘overall fit’ metric to ensure all buildings can be made to fit. You also wont’ want to visualize each building on top of each other, so setting up duplicate views side by side is likely advisable. This is the resulting graph:
Multi Building Locator + Selector V1.dyn (190.6 KB)

The Graph:

Resulting Geometry Display:

In Generative Design:

Obviously this allows exploration at a larger scale, but in the end owning 'building A vs building B is hard to quantify this way. Allowing GD to explore both the building option and the layout makes more sense to me, but this could get a better outcome overall.

In a more realistic scenario you could test a series of lots to have a permutation of a list of buildings, where the building list is a good bit longer than the list of lots. Then evaluate for variety of buildings, use adjacency preferences (ie: shops are near residential and office, industrial is more isolated, etc.), environmental performance, and the like.

1 Like

Thank you very much Jacob for taking the time to write a very thorough solution to my problem. I’ll look into that and see how I can enhance my graph. I think I’ll still have an issue to solve, relating to this:

I’ll dig into it and worry about that later on. Again, thank you very much! I truly appreciate your help.

1 Like