Hi folks,
So I have finally understood enough about list levels to do the following (it’s been a loong journey):
I am taking two vertical lines (red), I built points on them, to create horizontal lines. On those horizontal lines I built points, and then use those points to create horizontal (blue) and vertical (green) sublines, both with a possible offset to the base lines.
And, via GetItem.AtIndex I confirmed I managed my logic correctly, so that I can access a group of 4 curves building a quad (violet, bottom right corner) whereever I want:
However, I cannot build all quads, because the List.Combine node doesn’t allow me list level access, which I would need to get this building going on a global level:
List.Combine, List.Map, List.CrossProduct, List.LaceShortest, and List.LaceLongest are a relic from before list levels existed. They require function passing which is quite slow compared to using list levels, but it gets the job done and provide a few other benefits.
For this reason you shouldn’t need to use those nodes from Dynamo 1.2 on (I did call them relics, right?).
So to build atop @bvs1982’s question… what is your desired result? My gut tells me the ‘quick’ fix is ListCreate > List.Transpose.
Thanks for your willingness to help! I was trying to create a sample set of lists with letters to express what I need, but it was getting too complex. so here we go with some pictures. I have 4 sets of m lists (variable, in this case 5) with n list entries each list (variable, in this 6). I need all entries which share the same index in a list to go into a new list (new list results in 4 entries), and this needs to happen for each of the m lists with each of its n entries, resulting in m*n lists with the size of 4:
Okay, finally was able to create an artificial graph which represents the issue. And as soon as you have understood your problem well enough to do that, the solution becomes pretty obvious. in this case I could now see better where the elements are which shall end up in one list. Simply flattening all 4 sets of lists, and using List.Combine then solved my issue:
That does not do the job? I think that may be due to the fact that we are dealing with multiple variables here (m lists of n entries, and that 4 times)?
The List.Join structure does no longer have the information that it were 4 sets of lists which were joined, which I think prevents the later Transpose from being another solution here?
I have to be honest, I don’t quite understand this approach?
I am currently pretty busy giving Dynamo trainings and preparing another set of free Dynamo tools for Alias users, but maybe we can make this a topic once we have a call in the near future. might be easier than lengthy back and forth posts here on the forum.
@jacob.small I just ran into this again, as one of my class participants asked for a solution which again required the List.Combine node to work on a lower level. So I went back to this thread, read your answer with your solution about “transpose two times” again, tried it (though still understand it yet), and it worked!
So I changed my “solution” to yours, as yours would work in more scenarios. Thanks one more time for your post here!
I’ve made a note to put together a blog post that will help explain it when I have time, but that might not be until February as many of my projects have to ‘spend out the contract’ before the end of January which adds a lot of deadlines to our workload.