Generative design - buildings on site

I am struggling with generative design srcipt. This is my first attempt.
I have 14 buildings to lay out on a plot of land. To begin with, I have established two basic conditions: everything on the site, no clashes. Rest of conditions was unchecked.

Unfortunately, the study results seem to ignore these conditions. Following Jacob’s guidance scoring is simple: 0 is best, otherwise - 1000.
I don’t know where the error is. I would appreciate some guidance.



Can you post the dyn and a rvt file with the elements for selection in it? Or at least an image created using the export canvas as image feature (either under file, edito, or the camera icon in the upper right) after zooming in so we can see your node names and expanding some of the previews (first and last node of each group should do).

My guts say there is a missing Data.Remember node (or two) based on description and what I can make out of the graph.

I’m using Dynamo Sandbox. Data files in zip, dyn file attached as well.

USMP_Sandbox.dyn (265.9 KB)
DataCSV.7z (358 Bytes)

Still no luck. I’ve put buildings and plot data into codeblock in case there is sth wrong with CSV files.
I really can’t see any major issue with the script unless it’s Sandbox itself. It tends to wipe out preview windows (during optimize cals from time to time. But maybe this is the way.
I was hoping to explore the tool but for now it;s just frustrating. Will go back to hand sketching …

Didn’t get your file until late in the day on Friday, and so I haven’t had time to review yet.

Do the sample graphs work for you?

If you you a different site (much larger and rectangular) are the results different?

What if you try one or two buildings instead of 14?

I get that it isn’t easy to start with, but most things worth doing aren’t easy when you are getting started.

Just did a test with your dataset; everything is running fine here from both an optimization and randomization standpoint:

Overall the graph is actually quite good; we just need to figure out what has blocked generative design from executing correctly. Assuming you’re launching the right Generative Design for your graph’s engine, this shouldn’t happen, and if you’re launching from Revit it shouldn’t be possible to launch a mismatched verson.

Often this is a system issue - it’s best to submit a support ticket via as this is usually a signal that you’ve got a update that has somehow put your system into a bad state, and may take dev team review to resolve.

Jacob, thanks for checking. I have a script running on my side, but probably need to lower my expectations.
A couple of questions:

  • is such large number of objects and variables good to optimisation
  • is large number of goals makes it easier or harder to find optimal results
  • is it in extreme cases worth splitting the process into parts and then combine results


I don’t think the number of objects will be an issue; however it’s going to take a long time to optimize.

I saw (3 variables) * (14 buildings) * (3 population per input) = 126 which rounds to 128 population per generation… Typically I multiply that by five for the generation count… so 512 generations… I’ve done worse, but not in a production environment.

You might get results faster by building a tool which aggregates your buildings into a functional layout, in sequence, such as via circular coordinate system, or by sequential stepping along linear paths (likely the route I would go as it would allow for producing the roads/paths you’ll need on site).

An example of this would be building a polycurve by N points (where N is a U and V slider for each point), thickening it to get ‘each side of the road. Then get a permutation of the building list and place then along the coordinate system. New layouts are achieved by getting a differing permutation of the buildings, or by adjusting the points which define the polyline.

It seems that this tool is not yet Midjourney :wink:
Agree that solid human pre-calculations are required before running any fancy solver.
Will start from here.

Certainly not. This one permits abstraction and produces what you tell it to within the range of parameters which you define, instead of a data set which someone else trained to produce guesses the same way autocomplete guesswork functions… :wink: