Data structure to join right surfaces?

Hi everyone,

I have a set of vertical curves arranged in a grid layout - with those outside a certain outlined having been culled.

Each curve is divided in 7 segments. I’m now trying to enclose each volume thus defined between every curve (x,y), (x+1, y), (x, y+1), (x+1, y+1).

I have successfully used the Ruled Surface component to create surfaces between each column and the next in the x direction and the same in the y direction. I’m now trying to join the 4 surfaces that define each cell, in order to then cap each open brep thus created and get closed volumes for every cell.

I managed to join the first 3 surfaces for every cell but I’m completely stuck at the last one. I’ve been trying everything I can think of (various combination of shift list, shift path, flip matrix, relative item, path mapper) and read all the possibly useful threads I could find but I just can’t make it work.

Can somebody please help? I’ll be eternally grateful.

Brep join problem_for (31.2 KB)

1 Like

Completely different approach: (38.6 KB)
P.S. Your curves are far away from Rhino origin point, which isn’t recommended since it messes with the document tolerances.


Hey! Thanks for taking the time to look into this and giving it a go yourself. Going with a totally different approach is certainly interesting to look at the problem from a different perspective.

Unfortunately your solution doesn’t quite do what I need and I realize that’s my fault for not being more specific in my post: I divided the curves in 7 segments in the z direction because I need one closed volume per “story” thus created (like highlighted in green in the screencap I attached).

Also I need to stick to planar/ruled surfaces, that’s why I’m not using the loft nor the 4pt srf components.

And you’re right the geometry is far from the origin, I’m aware that cause cause problems but in this case it’s because this is only a small part of a large definition for a large project. Thanks!

Also, I’d really like to create the diagonal panels highlighted in this sketch. I suspect the approach for that would be similar to the problem I’m currently stuck on.

1 Like

Is that what you want?

Brep join problem_for (33.4 KB)

Yes that looks a lot closer to what I’m trying to get, thank you! However when I open your definition I don’t get the result you posted. There’s an error at the loft component (loft could not be constructed).

Any idea what’s going on?

I like that in your approach you leave the divisions in z for the end. I was going to try treating the problem story by story using the explode tree component but this is even simpler. Thanks a lot!

I didn’t change anything

Brep join problem_for (33.2 KB)

1 Like

Hmm. So odd…

Can you check from the beginning what happened?

Brep join problem_for (33.3 KB)

1 Like

I have no idea.

But it’s ok, I went all the way back to how I was generating the surfaces, I attacked the problem floor by floor to make it easier for me to understand what I was doing to the data structures and came up with a much cleaner definition that works to do what I wanted.

Brep join problem_for (32.2 KB)

The error on the CapEx component is caused by the cells at the end of each row, I just have a bit of cleaning up to do.

All that’s left is the triangular cells at the end of rows 0, 1 and 5!

I did it!

Brep join problem_for (37.3 KB)

Thanks for helping you guys. There’s probably ways to do this that are orders of magnitude more straightforward but for now I’m happy.

Since this is only for one story and I have no clue how to attempt generalizing this to handle all 7 stories at once I’m probably just going to create a cluster and repeat it for each story.

I’m definitely interested to learn how to make this better, if anyone has clues or wants to take a crack at optimizing this and/or handling the z divisions feel free to comment!


Draw this line and use it better than using lists of numbers

Brep join problem_for (64.1 KB)