Some solutions of GenerativeDesign cannot display geometry

Hello, I am a graduate student in the Department of Construction Engineering. I am currently using Generative Design to assist in checking the toilet clear space (putting inspection volumes in multiple rooms and checking whether they intersect with components in the room)

When my graph is executed in Dynamo, everything is normal. However, when I use GD to solve randomly, some of the solutions cannot display the geometry (the details show that the output value is *), and when using optimization to solve, it will get stuck in the first generation.

If I directly specify the seed as 76.4 in Dynamo, the overlap volume (output value) of 1.5378 will be generated, but GD will be displayed as a null value. The random seed is only used to control the position of the inspection volume in the room. Why does it affect the geometric display of obstacles? Or is there something else that prevents the obstacles in certain results from being displayed?

Attached below are Dyn screenshots, Python node code screenshots, GD result screenshots, and screenshots of the same method used to check the “single room” toilet with successful results.

Screenshots Click Me

Potentially. How much RAM is utilized when you run this in Dynamo Sandbox?

My guess is you’re exceeding GD’s internal limit for RAM due to how data is being tested/serialized and so the outputs are being invalidated after a few failures. Hard to say without spending more time than I have though. Can you reset your GD log file by renaming it, then running a simple 4x4 optimization study to reproduce the issue, and then post the log here?(I’m bumping your trust level shortly)

The log files are in %appdata%\Generative Design 20xx\refinery-server-log.txt where 20xx is the version you are using.

First of all, thank you very much!

I’m not sure which file needs to be renamed… Because I found a lot of txt named refinery-server-log, and does it matter if the file name is changed to anything?

In addition, I just tried to randomly generate 5 solutions as well as 4x4 optimization solutions without resetting GD log file, and all of them were successful. However, when 12 random solutions are generated, some of which will fail. The strange thing is that the RAM usage does not seem to be very high.

Screenshot attached here

Changing the extension from .txt to anything else should work. The extension of .1, .2, .3 is already doing this (turning on your extension display in windows will likely help).

The Ram consumed by GD is not the value which matters, but the Dynamo instances which it spins up. Best to review by running in Dynamo sandbox and check the RAM use of the first run, otherwise I have found the values are skewed by GD’s limit.

I got it, but I can’t find the way to see how much RAM Dyn is individually taking up when I run it in Dynamo, and all the RAM usage is as shown in the screenshot in the previous reply.

Then, this is the result after resetting the log and performing 4X4 optimization.

Thank you very much!
refinery-server-log.txt (188.5 KB)

Launch Dynamo sandbox (download the matching version for your Dynamo for Revit version from dynamobuilds.com if needed) but don’t open the graph yet. Go to the details tab of task manager. Sort by name. Find Dynamo. Open the graph and run it. Watch the RAM column around Dynamo to see about what the maximum RAM consumption is.

If you can’t make that work don’t stress it too much. I think I have enough info here in the log for a member of the development team to identify what may be going on (lots of good error messages anyway).

Thank you for your guidance!

The RAM consumption is as follows.

1.1 GB is a bit too much for GD to work consistently. There is a ‘cap’ at 750mb so you’re almost 50% over the limit now. Note that the RAM usage in GD will differ from Sandbox as it has less to do (it doesn’t need to draw the nodes, etc.), but it’s a good guideline.

Look into reducing the graph’s complexity, removing nodes to reduce the count, shifting to design script records, simplifying data types, or reducing the data structure as a next step.

I’m not entirely sure of the ‘goal’ for the graph (can’t really see what you are optimizing for). However one possible help with RAM reduction that I see is to remove some of the redundant Data.Remember nodes. You have a Data.Remember going into a List.Flatten going into a Data.Remember. The first will always have content while, the second will always have to re-serialize that content. Keeping just the last Data.Remember in the string should suffice. Also there are Data.Remember nodes occurring after the variable input, which will cause incorrect results in GD, so be sure that you’re only remembering the things which shouldn’t change, and only remember them once.

Thank you.

I’ve tried compressing the nodes with DesignScript and removing the excess Data.Remember. The RAM occupied by the sandbox has been significantly reduced to about 400MB.

But now when executing the chart in GD, it cannot display any geometry or results. But everything is fine in Dynamo.


Can you post the rvt and dyn as they currently stand?

Of course!

Files

When I try and open the file in Dynamo sandbox I get an error on the lower Data.Remember node - can you confirm this is happening for you as well?

Sorry, I found a connection error in one of the Python nodes, so I modified it slightly. Now the GD result contains part of the correct geometry (the geometry remembered by the Data.Remember node above), but the output value is still null.

I’ve checked and the chart runs fine in Dynamo and shows no errors. However, it can be seen from the results of GD that the geometry remembered by the Data.Remember node below is not displayed. This may mean that there is indeed an error in this node, but Dynamo does not report the error.

Is this related to the warning shown by the upstream Element.Geometry node?

The following is the modified file

廁所淨空間_0117 (2).dyn (1.7 MB)

In Sandbox, or in Dynamo for Revit?

In Dynamo for Revit.
It seems that there are no Revit related nodes in my Dynamo sandbox, so it always reports an error. Is this normal?

By the way, I added Data.Remember again before flattening the Element.Geo below.
After executing GD, several of the solutions successfully produced geometry and numerical output, but the remaining few solutions still failed to display geometry. Just like it was at the beginning.

Yes, but if the Data.Remember nodes are working correctly you should still get results.

Dynamo Sandbox has no access to the Revit api, just like Generative Design.

So, judging from these results, is it a problem of taking up too much RAM or a problem of the Data.Remember node?
Thank you.

Can’t tell until we confirm the data.remember node is providing results correctly in the new graph configuration.

1 Like

Got it, thank you.