Revit Conceptual Mass & Generative Design

I am trying to create a script to modify a conceptual mass based on Solar Analysis. It appears to work within Dynamo, where I can modify the height, and works as it should.

The problem is when I export to Generative Design, it keeps generating the same output results. For example, the floor area and surface area always stay the same, when they should change with the building height.

The files can be viewed here: Click here

Anyone any ideas? I’m completely stumped and would appreciate some help. Thank you.

There are at least 3 problems with your graph that will need to be addressed. The first two are technical, and the 3rd leads to more of a philosophical discussion.

  1. You’re calling a List.GetItemAtIndex node off an Element.Geometry node early in the graph - wire it to the remember node instead to solve that issue.
  2. You’re also missing a remember node between the select faces node and the after the solar analysis node, and so you’re passing a null instead of a geometry.
  3. Your inputs are on the left side of a remember node, and as such they will fail to alter the design in any way.

For generative design to work you need to set up a model in Dynamo which runs completely decoupled from Revit. You might grab some initial data from Revit (or Civil 3D, FormIt, Excel, or anything really), but you want to quickly save that data into the Dynamo file with a Remember node. From there you want to manipulate the information to generate new information which can be evaluated for conformance to a particular goal. In your case this could be done by taking the initial location of the mass, and scaling it as a cuboid or other geometric form, and intersecting that with planes. The entirety of that exercise would rely on the Geometry nodes in Dynamo - not Revit interaction. You would then evaluating those shapes for meeting the goal - , sum the area of the envelope of the mass, calculate the solar performance of the mass, and pull the area of the surfaces from intersecting with the planes for floor areas.

None of these things can happen with your graph as designed. To test drive how Generative Design sees the graph, open it in Dynamo Sandbox and adjust your sliders - you’ll quickly see that there are parts of the data you can use and parts you cannot. Some new things you might want to add a remember node to, and some things which you don’t want to remember (generally speaking, once per grouping).

Hope this helps steer you along - the process of producing a generative graph isn’t easy by any means, but once done you open up a whole new world of possibilities.

Jacob, your answer was extremely useful to me, thank you.

I was testing to see if I could manipulate instance parameters in a mass with Generative Design, but this appears to be incorrect. I’ll start getting the geometry into Dynamo and modify it there, which I have had success with previously.

Generative Design has been challenging to me and requires a different way of thinking, but it is starting to make sense. I’m excited to develop further. Thanks again.

This is doable, but only with the end state. Send the original element (after evaluation) onto a set parameter value by name, and wire the intended parameter value into a data.gate node in the ‘closed’ status, and wire the output of that into the ‘value’ input of the set parameter value by name node.

This way, once you select the desired outcome the element should have the parameter set accordingly.

The AU session I presented with Alexandra Nelson may also prove to be quite useful: https://www.autodesk.com/autodesk-university/class/Generative-Design-Hogwarts-Using-Tech-Instead-Magic-2020

That makes sense on the instance parameters. Generally speaking, I need to do more in Dynamo, which is grand.

I’ll check out the video. Harry Potter is one of my guilty pleasures.

Thank you for all your help, Jacob.

1 Like