algorithmic modeling for Rhino


Hello.. David..


I think the SetDataList method seems to behave a little differently compared to others.


The SetDataList method increases path dimension.. i.e. adds a meaningless index to paths at the end..


So, many components using the method have an additional index on Output Data Set..


Shift.. Reverse.. Insert.. Replace.. Split.. Subset.. Sort.. P'n'C.. Weave.. in List Components..


Cull components.. Series.. Range.. Sequence.. Repeat.. Duplicate.. Fibonacci.. Jitter.. Random.. All Sequence Components..




List Item or List Length, originally designed for one output and might use SetData(),

don't increase any meaningless index..


I think it is because of the SetDataList() has path.AppendElement() internally..


It would be better, if this is fixed not to increase meaningless index..


Some beginners of Grasshopper are confused by too much long paths..


And Path Mapper will be not changed manually as often as it is now..




I attached a simple image comparing Item, List and Tree Access results..


They all have only one script.. "A=x;"







Views: 1046

Replies to This Discussion

Hi Jissi,

the extra dimension is not meaningless. If you add multiple items in the input, the extra index start to have meaning. I don't want the components to behave differently when they operate on multiple items, which is why the extra dimension is always added, even when it doesn't in fact provide new information.

Changing it now would also mean that probably every Grasshopper file out there that uses Path Mappers will become invalid, which is not a sacrifice I'm willing to make lightly.


David Rutten

Poprad, Slovakia

Yes.. I know so many files would become invalid..
But I don't understand what your mention "on multiple items" means..
I'm not talking about components like Curve Divide..
I've never seen any other additional index than "0" in Output of Shift Component..
If I miss any important point, would you let me know the right things..
A brief example which has meaning in the extra index would be good..

Note how there are no superfluous indices in the paths of the final tree.

The first dimension mimics the path of the original surface, the second dimension identifies the the index of the original surface in its own list and the third index identifies the point column.


David Rutten

Poprad, Slovakia


In fact, I have told about the extra index at the end of paths..


and originally Surface Divide makes different extra indices identifying point columns when only one surface is input..


But finally.. I got your point..


Thank you so much..


I attach a better example answering my question..


That explains why Shift Component has the extra index at the end of path..


I always used one item for Shift.Offset or grafted for multiple lists..


Thanks again.. ^^;









  • Add Photos
  • View All

© 2021   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service