The context here is not important. I’ve sliced away all the extraneous components until the issue is reproducible. The green group contains test input. A bunch of lists and data duplication happens and then a bunch of lists come out the end. The lists have the correct contents.
The numbers in the Gene Pool (3, 3, 2) effectively control the number of 2nd-level branches.
When I change the numbers, the tree diagram changes as expected (as do the list lengths and contents - correctly). But for some reason, when I put the input numbers higher, the tree structure suddenly changes, which messes up a load of downstream components. Yes I can brute force a fix with Match Tree, but I’d really like to know what’s actually going on here.
This seems to happen when the total number of items in the output tree gets above 50, regardless of what combination of inputs causes it.
Note that it’s only the output of the final List Item component that behaves like this. Everything before it works as expected. I’ve spent ages staring at Panels plugged into everything, watching the lists dance around while I tweak the inputs and I just can’t figure it out. Any bright ideas?
The reason why seems to be that once the list exceeds 50 items, the list item component selects the branch paths from the list input, and not from the index input like it does before hitting 50.
I’m not entirely sure why this occurs, but if I had to guess I’m assuming it’s because of ambiguity between the trees, so Grasshopper is selecting it arbitrarily, which happens to be once tree contains 50+ items. Related to this post:
I tried to make the indices the principal input which did not fix it, but making the list input the principal does make it act consistent, albeit towards the wrong value. You may be able to fix it by remapping.
I don’t know if I would call it a bug per se as the case is ambiguous, but I would say that making the item input principal doesn’t make the output match its structure is a bug.
Yeah, if not a bug, that’s definitely arbitrary behaviour! And now I get to learn about Principal, which looks like it’ll help a lot with maintaining tree structure elsewhere in this project. I can work with the “wrong” behaviour so long as it’s consistent! Thanks