I’m trying to follow the example of Ramon van der Heijden on how to split a massive project into more bite-size bits of grasshopper and Rhino models into “a distributed data model”.
But is there a way to automatically bake the result of a grasshopper script into a rhino model so that changes propagate throughout the data tree without having to open each grasshopper file? It seems silly to open each grasshopper file, let it recompute its result with the new changes, bake that result and then open the next step to repeat the whole process?
I’ve observed the same issue using Data Output/Input, though I’m waiting to bake until the last step in the process:
Quirk #1: If I change a parameter in Step 1 and then switch directly to Step 3, the results are a mix of Step 1 and Step 2 params, which is obviously wrong. So making a change in Step 1 requires a visit to the GH file for Step 2, which reads the data from Step 1 and outputs for Step 3, before moving to Step 3. This is a minor inconvenience given the benefits but ultimately would be nice to avoid.
I have all three files open in a single instance of Rhino/GH but the only one being executed is the one I choose to view. It would be AMAZING if all three were active at the same time! I could use Data Output in Step 3 to modify parameters used by Step 1, which in turn would update its output for Step 2, which in turn would update its output for Step 3. At one point I simulated this by opening multiple copies of Rhino/GH, each running one of the three steps and it worked! It was cumbersome and far too slow for realtime interactive changes though.
It is a tantalizing prospect to imagine a day when Rhino/GH could handle models that are compartmentalized into logical pieces and communicate with each other, as traditional programming languages have done since the very earliest days.
Incidentally, I am considering approaching McNeel on the idea of using RhinoInside to launch Rhino inside Rhino… This would hypothetically allow multiple instances of Grasshopper in the same session and support the kind of workflow you are talking about here – however, I have no idea whether this causes unintended consequences or is even possible. But it would be great to give it a try.
Funny thing – I was on the original RESThopper hack team… but I did most of the front end code in Ionic, haven’t really dived in to the back end code at all. Funny to see it resurface here in this context. Will take a look at your code when we’ve got a minute to test this out!