Grouping Split Surfaces

I have a number of split surfaces that represent the planes of wall panels. I need to export this into my analysis software, and I need to group the panels in a certain way for the analysis. The panels must be split as shown to avoid triangular meshes. I have sorted all the surfaces based on elevation, but I am not sure how to create each sub-group based on thier level.

Each panel or tree is split into multiple surfaces using horizontal lines. Some panels have doors, so those are also split using veritcal lines. I would like to group each level of the surfaces into a group. I believe the tree needs one more level for this, but I am not sure how to do this. In this case panel 2 is the main panel that causes the problem. In many cases I will have far more openings to deal with.

The current paths are structured as you see below.

I believe the tree structure should be like the image below:

tekla_shell-FORUM.gh (17.3 KB)

tekla_shell-FORUM Edited vo.gh (42.8 KB)
If you want to group by z direction, then connect the z.

Thank you. This seems very close to what I need.

That is not quite correct. I need to maintain the number of branches as 6 in this case. Each branch represents a wall, and the goal is to detemrine the forces at each level of the boundary surface using finite element analysis. This gives me some ideas, so I will figure it out. Wall #2 below is the problem here. Sadly, clients want to put holes in our walls, so this is a common problem. :grinning: Nomrally we create our mesh using CAD and it is silly mind numbing work that I want to avoid.

anything can be done, but if you don’t want to renumber stuff by hand (I refer in particular to the branch {2} where there are sub-panels) the easiest way is to divide the surface in a smart way, in such a way branches will come out as desired (or close to that) on their own

@Brad_Shipton I opened your file, you included a python snippet that fuckups the default canvas/whatever colors into the ones you are using in your studio/practice/whatever

you should NOT be including that kind of stuff in the GH file, take 1 minute of your time and clean it before posting, so whoever opens it does not have to lose 15 minutes of their time because you were lazy / forgetful / didn’t care

I’m spending the time I wanted to dedicate to your problem to restore the GH default visuals



anyone else who wants to help, don’t download that file, or open it with solver locked and delete that:

if you didn’t see this soon enough, with Rhino closed, you’ll have to delete the .xml files in the GH settings folder to restore them to default and open Rhino+gh again (then need to re-apply custom settings by hand, like radial menu on spacebar and stuff…)



this does the job, but there’s manual intervention with replace paths to remove the opening afterwards:

tekla_shell-FORUM_CLEAN_Re.gh (17.3 KB)

[edit: removed some cursing]

1 Like

I am very sorry about that. I forgot to delete that part. It is a template I have been testing from someone else lately. I was not aware of the problems it would cause others. I will ask the moderator to remove the file.

I realized earlier my linework I used to split the surfaces was a problem. I used points from the tekla model, and the pick order caused the problem. In the future I can define the points in a logical order.

Thank you very much for the help. Your solution seems like something I can use in the future for larger projects.

it’s fine, I very much overreacted to nothing more than a distraction, sorry for that
it was 2 in the morning and I had like 4 rhino+gh instances opened simultaneously doing some weird calculations and opening your file fucked up all the visuals of everything else since that moment :slight_smile: everything is -hopefully- back to default colors now

speaking about the definition, I don’t know if you can take that very definition and use it in different -but similar- scenarios, looks like there is a wide range of variables that could easily make stuff go wrong

but for sure these can be re-applied in different scenarios:

  • sort_cutting_curves -> divide_surfaces -> branch_them

  • divide_surfaces -> sort_surfaces_fragments -> branch_them

generally speaking, you want to start with surfaces that are as clean as possible, if surfaces have openings, and a division happening exactly over the edge of the opening, the best way -in my opinion- is to get rid of those and reapply them at later (final maybe) stage

you explained that the software you are using wants that very particular Path order, but be aware that it will somehow fuckup any further data manipulation in GH

the way a “standard” data structure could be in this particular case would be for instance:

where each path component represents either a column, a row, and a sub-column (if present)

but when you ask specifically to account for the opening the way you wanted it, this happens to the data structure, Path C is not accounting for sub-columns anymore

I would have handled that this way, leaving a hole by removing the opening at {2;1:1}, but not renaming its neighbour into {2;1;1} instead: that is and remains {2;1;2}

you know your stuff better than I do :wink: I’m writing all this just because it looks super weird to me (by the way I have 0 experience with tekla or any other hard-core analysis software)

1 Like

I totally understand. I updated Rhino yesterday and one of my plugins stopped working. I hate that stuff. You come here and some bozo cannot figure out that something in his script is going to screw something up for you.

I went thru the steps today, and it makes a lot of sense. By closing the openings it is much easier to create an organized layout. Proceeding with the vertical cuts first, I can get all the data organized in one direction. After that, horizontal cuts are the same process.

I have it working quite well now. Removng the openings is not great, but there is not usually a lot of openings. By adding a some text I can see the path and index of the openings. Easy peasy.

The process starts with extracting the walls from the model and then extracting the planes I need. Working with solids in analysis software is rarely done. If I can get this to work I can save of lot of time.

Thank you very much for all the help. I still struggle with some of the data manipulation.

just a final thought :slight_smile: didn’t think about this earlier, but actually you can easily retrieve the position of non-openings by something like this, pulling a point from the centroid of each divided panel into the closest original surface (which has openings):
if a point has to travel more than zero (well, zero point something…) units to find the closest original surface, it means that a surface was not there at all, so you can cull it out because it’s an opening indeed

the Cull Pattern operation removes items from lists/data-trees but does not delete empty branches, but a Clean Tree can easily remove those:

tekla_shell-FORUM_CLEAN_Re_Re.gh (25.6 KB)

I think this would make finding the openings a much easier job, much better than manually deleting them (or writing their path coordinate down)
but still, the situation is the same as for my previous post, where the data tree you get is the one that actually would makes the most sense for further manipulation in GH, but might not be the one your analysis software likes the most

it would be this:

instead of this:

If instead you want the weird data structure you’ll need to Trim Tree one level and Graft:

tekla_shell-FORUM_CLEAN_Re_Re_Re.gh (28.2 KB)

That is a great tip. I have a few manual steps I will need to re-visit in the script so this is very helpful. I manually selected some points in Tekla to create my linework, but I think I grasshopper can do all of those steps as well.

With a lot of excellent help from @jonm at Geometry Gym the analysis is extracting the forces where I want. Never before could I do this in this software. Creating a 174 definitions in the analysis program is not practical.
There is other software that can, but I like this program.

2 Likes

If you are interested here was the goal of this little project. Below I have plotted the forces in each wall panel. This considers the foundation connnections and wall panel connections. One would lose their marbles trying to get all this to work manually since you would need to create 174 definitions manually and then plot all of this. Now I need to go back thru each step and figure out how I could code some of this to make it faster.

Great help here. Thanks.

1 Like