I thought I would add these from the other thread.
The original inspiration was from @TomTomTom. If I understand correctly, he wanted a bus, such as a data bus, as used in electronics.
In this context, the idea of the components would allow a mix of up to 8 parameters or geometries, along a single wire. The only advantages are: readability, and allowing a greater overview of the Grasshopper sketch. They also might be handy for swapping A/B sets of things
AFAIK, there isn’t a generic parameter. They are all typed for various single data types, but not set lists.
So, I made a Multiplexer and a De Multiplexer using set/list comonents. They only go one way, but can accept most data types. What they do is allow 8 parameters to pass on a single wire. The catches are: the outputs seem not to be able to be named. Also they can only pass parameters one way. Inside, they are a hack, but they seem to function, as a proof of concept.
For the Multiplexer, the Weave was chosen to force a particular order, as other components changed the order. If you change the ports, you need to edit the list. For the De Multiplexer, I just used a component that could pass a list/set.
De-MultiPlex.ghcluster (5.0 KB)
Multi-Plex.ghcluster (5.0 KB)
Going further, I think a cluster could be made to pass the bus, but add or intercept a single channel/port. In other words, you would have one big multiplexer on each end, and then you could add/read data or geometry along the way, using small, dedicated taps, like…X-mas tree lights, (Faerie Lights in the U.K.)
I can’t go further, but a component could be written that could:
- Give the appearance of bi-directional data passing, though likely it would just detect what’s attached to it.
- Allow both the inputs and outputs to be named
- Have a +Plus function for adding or deleting ports.
Anyway, the ones I threw together seem to work, but more importantly, with @TomTom 's idea, you could build your own.