I thought I more or less understood trees up to this point, but I can’t wrap my head around this. I have tree of 8 surfaces (Surfaces), a tree of 8 vectors normal to each surface at a certain point (Surface normals), and a tree of 8 collections of curves (Curves) that need to be projected onto each surface. So the first branch of Curves needs to be projected onto the first branch of Surfaces in the direction of the first branch of Surface normals, same with the second branch, etc.

Now, the geometry looks perfect in Rhino—the curves are all exactly where they need to be. But the tree structure is completely screwed up with one branch for each projected curve. If I try to unflatten it or match it to the structure of the Curves tree, I get back to the structure of the original Curves tree with 8 branches, but the curves in each tree are no longer associated to the corresponding surface onto which they were projected.

Is there something fundamental that I am missing about trees or curve → brep projection?

Kevin, thank you so much. I had been trying to find a utility to rename the branches on my tree but never ran across that Renumber tool from Treesloth. You are a lifesaver. I am going to clean up all of my trees now