as follows.
We have a grid which consists of a collection of columns, where each column consists of a list of points. You said flattening is out of the question, so we need to cull items from each list individually.
Let's say our culling pattern is KDDDKDD (repeat as needed). K = Keep, D = Ditch. If a column contains 18 points, the pattern needs to be repeated until it is 18 items long. In this case:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
K D D D K D D K D D D K D D K D D D
We can now cull each column, but they will all be culled in the same way. By shifting the pattern one more index for each column, we can cycle the culling.
The fix incidentally is to Shift the pattern PRIOR to repeating it. Then it works as expected:
--
David Rutten
david@mcneel.com
Tirol, Austria…
Added by David Rutten at 2:49pm on October 2, 2013
to give you the data structure you're looking for, simultaneously replicating the sub-path index as the single value per branch, so that you get a data structure like {a;b}(b), in your case {45;10}(10) {45;23}(23) {45;26}(26).
Then, a single line of C# does the rest.
A = D.Branch(R);
The access of R must be set to Item, and the access of D must be set to Tree. This means that D will be loaded into the C# component as one huge array (that's why it takes a little while to load when you open the file). Since R is set to Item, the component will run once for each of the 1150 branches in R. Each time, the branch with the value of R (10, 23, 26) will be populated with the corresponding branch {10}, {23}, {26} of the huge array D.
Hope that helps. When you get back maybe tell me what D and R actually mean?
N…