# Selecting points in a diamond pattern (yet again)

I have a set of points (which may look weird in this example, but trust me fits in the actual thing I’m working on) which I want to connect in a pattern like so:

Apart from the line connections I want to make in the diamond pattern, note the points in the screenshot as those are offset in the normal direction of the underlying surface. I believe I have the building blocks for both in the Grasshopper file, but I’m stumped (hah) at how to split the tree to:

1. Select the correct pattern of points for the normal offset
2. Select the correct points in the correct order to connect the lines

Split tree seems like an elegant solution (with an extremely complex syntax, believe me, I’ve watched several videos on the topic and they’re all terribly complicated), but why doesn’t my attempt provide any output at all for me?

Diamond Test.gh (18.2 KB)

EDIT: If I learn enough of split tree masking, maybe I even could turn this into a hexagonal pattern? I’m starting to see a hint of the matrix behind the curtain now, to mix metaphors…

Your data has a path index level of 4, whereas your masks don’t. You could simplify the path index according to the masks or you can also make level-4 masks…

Diamond Test._re.gh (24.8 KB)

Ok… I don’t understand why I had that index level but simplify tree helped, thank you!

However, I still don’t get why both the positive and negative values have the same amount of values after split tree, and yet it has obviously done its job if I look at the results of nodes you hook up after it… at the same time, if “split” using list culling, the amount of values you get out of that is indeed reduced. Why is that?

(Similarly, I just noticed that if I split the tree again, two times in a row, that doesn’t matter as the result doesn’t change at all… so do the “masks” get “saves” with the tree? Is there a node to visualize that in some way?)

EDIT: Ok, I think this is the answer… and you need to do “clean tree” do use it as a list again…