HB planarize brep flips normals...sometimes

I’ve discovered that the HB planarize brep sometimes and unpredictably flips surface normals when there is a high number of surfaces…
I’m not sure how to eliminate this except not using it, but often I receive files with a high number surfaces (+5000) with a few that can be slightly twisted and may cause problems for HB unless planarized…
I’d like to not manually hunt them down and simply run the Planarize on all surfaces and be done with it.

Is there an alternative?

Hi @Anderssmith ,

Can you provide a sample file to explain what you are talking about?

Is this flipping happening on the direct output of the HB Planarize Brep component? Or is it that you see an incorrect direction on a face after you plug that Brep into another Honeybee component like HB Room from Solid?

If we can understand what you mean, we can see if it is a bug and then either push a fix or suggest a different way of planarizing things.

Hi @chris here you have a small file…and a screenshot
The light normals are without planerize and with and without HB face and the blue are after planerarize with and without HB face…it is clearly planerize that is causing problems…r

thanks
PROBLEM WITH NORMALS 2.gh (42.8 KB)


Thanks for clarifying, @Anderssmith . I see what you mean now.

A while back, we had added routines to ensure that the normal directions of planar rhino breps were preserved when translating them into Honeybee formats. However, while we added this in the standard brep translator, it seems that we forgot to add the same “preservation of normal direction” code in the routine that planarizes curved breps.

This is not such an issue if the only thing people use the “Planarize Brep” component for is non-planar breps. However, all of this becomes particularly important for cases that the input geometry is planar but it has a curved edge to be converted to a polyline. In these cases (and all other cases of planar input like in your sample file) the planarization process had the potential to accidentally flip them.

Needless to say, I just fixed it here:

… and you can see that it gets all of the breps in your sample file to work the way that you want:

The change is now available via the LB Versioner if you want to test it.

Thanks for bringing this to our attention!

2 Likes