Hello,
is it possible to create a python component which read the output of the other python components without wire them, like in the screenshot below:
Hello,
is it possible to create a python component which read the output of the other python components without wire them, like in the screenshot below:
Yes, data is stored inside the VolatileData field of parameters, which you can access. The problem will be that you presumably want your component to expire when the data changes and that you want the source components to solve first so that the latest data is available. This you get for free with wires but have to do from scratch without.
hmm ok, maybe there is an another way to solve my issue. For example if I have one hundred “a” outputs and I want to read the data then I need to wire them all together in one component. From my point of view there is a great danger that some of outputs will be forget. For this reason I had the intention to create an component which read the whole data from given output.
David I found your video on YouTube, it seem it’s nearly the same what I need. It would be good if the output data component would accept multiple files:
If you’re willing to do your processing outside of solutions or within a sequential solution, then you can probably achieve what you want by handling the SolutionBegin and SolutionEnd events on GH_Document. On SolutionBegin you iterate over all objects in the document, find the ones you care about and check whether any of them is expired.* Then on SolutionEnd you go into the document again and collect all the data. You can cache this collected data and use it in the next solution which you can trigger using a schedule.
This turns the process into a 2-solution one, but it may be worth it.
See: value collector.gh (9.5 KB)
The script component collects the data inside all the free floating text parameters called “A” and combines their volatile data into a single string.
Could also use the shared Rhino Python sticky
dictionary, arguably the simpler solution (that won’t automatically expire “downstream” components though, if that’s a requirement).