Is there a way to run part of a graph by storing information in a node?

#1

In my graph, I have a python node called ‘dictionary’ (where the cursor is at) which takes geometry and information from the orange groups, before passing it to the blue groups. I was wondering if there is a way to run twice - the first executing the orange groups and storing the data in ‘dictionary’; the second run is from ‘dictionary’ to the blue groups.

The reason I want to do this is that there too many processes which causes Revit to shut down when I run the entire graph. After the first run is done, I’d like to be able to run the second run as many times as I want to debug the blue groups. Any help is appreciated! :slight_smile:

0 Likes

What is NO_CUR_BB -- no current bulletin board exists?
#2

just a hint… Zoom in on a few nodes and then use the camera (upper right corner in Dynamo). Using this method will it be possible to read your graph. And for faster help, please provide also the dynamo graph as well (.dyn file).

1 Like

#3

Hi… I’m an absolute novice when it comes to dynamo so apologies if I’m wrong but would the node freeze option be useful here? Select the node, right click and select freeze?

1 Like

#4

It seems that you have lined up many problems, this problems seems to be connected to this post also…

As responded in that post… Without the needed informations and data is it troublesome to help you.

1 Like

#5

Hi, thanks for your reply. However, I cannot freeze an upstream node to run downstream nodes, as everything downstream of a frozen node would be frozen as well.

0 Likes

#6

I apologise for not attaching my graph or showing the details earlier as this for a client, and I am unable to disclose it. Nevertheless, I have attached a simplified .dyn file featuring an upstream group, a ‘dictionary’ and a downstream group, for your testing. Thank you for your help.

example.dyn (8.3 KB)

PS. My question is not specific to my .dyn file. I was wondering if there such a feature (or possible workarounds) that can run large graphs by parts to reduce the strain on RAM.

0 Likes

#7

Why are you making those python scripts?

0 Likes

#9

Hi, the issue at hand is not about the use of Python scripts. I used them because I was handling large amount of data, and that was the best way to organise it, as seen by the complexity of the original post.

Just to make myself clear again, I want to know how, if its even possible, to run graph two times (the first parsing data from orange to ‘dictionary’ then second time from ‘dictionary’ to blue). So that I can work on the second half and rerun as much as I want without having going through the first half.

0 Likes

#10

Why do you need to run something twice? Why isn’t data retrieved and handled in one run?
I is not possible to see your graph, the image is to bad for that. I can only see you end up with “null” in what you descripe as a “dictionary”. the example didnt help, but could be done in OOTB nodes, so why use any python nodes. I simply cant figure it.

If you want help, then please provide the needed informations and data… I can once again only refer to

1 Like

#11

Just split the graph in two. write the results from part 1 to XLS or CSV and read that info into graph 2.

1 Like

#12

Hi @marcusqwj
As you’ve observed you can put on hold the right part using the freeze option of the nodes.
Then you don’t want to run the left part over and over again, when you test the right part, if I understand you correctly?
For most cases actually once calculated, given no changes are made in those nodes, this is the default Dynamo behaviour. It only calculates if something changed.
If it doesn’t work like that in your case for some reason you can try writing the data from your dictionary to an external file and then copy all the nodes on the right of the dictionary to a new definition and read the data from the external file.

1 Like

#13

Once a set of nodes have been computed, Dynamo doesn’t re-run them unless one suffers any change and then it will be re-run from that node upstream. So if your orange part doesn’t change in between runs, you should be able to freeze the blue side, run once, and then unfreeze the blue and run again.

You can always check the Settings>Show Run Preview Option to visualize which parts of your graph will run.

2 Likes

#14

Thank you, this is definitely a possible workaround I haven’t thought of :slight_smile:

0 Likes

#15

Yes, I was wondering if I could run the left and right halves independently. Thank you for the explanation. I believe the external file is viable alternative :slight_smile:

0 Likes

#16

Thanks, ‘Show Run Preview’ and steps you have listed have been helpful :slight_smile:

0 Likes