I’m trying to update the initially drawn curves in Rhino based on the output of a series of components that calculate new geometry. The curves are fed into Grasshopper through Geometry Pipelines to allow for users to quickly draw/edit/delete new curves on the Rhino canvas.
E.g.: the blue lines are solved positions based on the drawn black lines.
I’ve made a component that replaces the drawn curve with the corresponding new (blue) curve based on the input curve GUIDs (See below)… however, when I execute this component, the topology/positions of curves get crazy very quickly. I’ve verified that the list of GUIDs has not changed in order, and the order of the list of curves has not changed as well.
With a bit more thinking, I think my problem is a bit more clear to me, but the solution still evades me:
I’m trapped in a recursive loop where every time I update the upstream geometry, it triggers new calculations along the component chain until it reaches back to my Update component, where the order of curves start getting mixed up.
I think my problem can be solved if there is a way I can freeze all components while the update loop is still running, IE wait until all curves have been updated before notifying the rest of the components.
Is this an appropriate place to use a ScheduleSolution method? Or is there another way I can hide the curves from view until the update computation is complete?