Solve_adjacencies not recognize exterior floors

Hi all,

I am zoning a 40-story building for further energy simulation.
As part of the process, I used the component Solve_adjacencies ; however, it is causing missing floors after it runs (Please see image attached)

(Exterior walls: Yellow; Interior walls: Cyan; Floors: Red)

It is happening to several floors, which makes it very time consuming to fix manually.
Is there a way to solve this automatically?

Thank you so much for your help!

Hi @LizRivera ,

Did you attach the exposed floors?

Hi Erik,

Yes, I did. However, I forgot to attach “floors”. It seems that Solve_adjacencies did not cause missing floor but misassigned them. As you can see in the image attached most of the “groundFloors” and “exposedFloors” (RED) were assigned as Interior floors (GREEN). Any clue on how to solve this?

Hi @LizRivera

Did you use the intersectmass component befor making zones out of it?

Hi @Erikbeeren

Yes, I did. However, it is showing the following warning “1. Failed to intersect correctly. Some output geometry may not be intersected.” I re-drew the geometry 3 times, and it keeps popping up.

Please find attached an image of my code (as a new user I can not attach the gh file :frowning: )

Hi @LizRivera,

Probably there is some inaccuracy in your geometry. I slight inaccuracy in the z-direction is enough to cause this problem. The best way to solve this, is to draw your plans just as simple 2d line drawings and put each level in a different block. You can import these blocks in grasshopper with the Human pluginn.


For the plans I use three layers zo I can sort out innerewalls, outerwalls and windows. From the outer wall I generate a floor surface which can be split by the innerwalls. The different surfaces now can be extruded.

The advantage of using blocks is that you can put them on different places in the drawing. So you can make one set for the energy model (put on a the layer for the energy model) and one set on the ground plane, where you can change the layout (put on a different layer). This will avoid small Z-inaccuracies

Hi @Erikbeeren

I solved the problem with the “Intersect mass” component. However, I believe that the problem with “SolveAdjc” is not a geometry problem and this is why: Before running “SolveAdjc” most of the exposedFloors are well assigned (see image attached), but when I run it, the component changes them to interior floors. I do not know why is this happening :frowning:

Hi @LizRivera,

I had similar problems some time ago. In my case they almost always had to do with really small inaccuracies in the z-direction and once because I had moved my model far away from the drawing base point (but that doesn’t look like the case in your model). The “SolveAdj” component is really sensitive.

Hi @Erikbeeren

You were completely right!

I trimmed all my zones with a plane located in Z(0), and it worked!
Thank you so much for your time

Hi @Erikbeeren,

Only one floor did not work with the method I explained above (see image attached). Do you know if it is possible to change this manually?

Thanks again for your help!

Hi @LizRivera,

You need to have a close look at this surface. Import this specific surface/brep in grasshopper and analyse the corner points one by one. I am sure there is at least one point with a slight inaccuracy in the Z-direction. If you know which point it is you can change it manually in the model.