"Failed to calculate opaque part of the surface"


I’m running into some issues adding some glazings to a HBZone. A majority of the surfaces are added successfully (the yellow ones in the pic below), but a small group of them return the error “Failed to calculate opaque part of the surface. Glazing is removed from [solid geometry surface name]”. I know the surfaces are co-planar to the solid because the solid was created by extruding them and they fit within the solid’s surface because the window geometry is scaled down 5% before it is given to the grasshopper node.

Has anyone encountered this error before?

Geometry and Script:
Daylighting.gh (752.2 KB)

My first guess, is it looks like you have overlapping surfaces. Try feeding just the outside surfaces of your windows to the script.

You can also bake all of your geometry to inspect what you have, and to see if there truly is one surface.

It also looks like some of your panels may not be planar. The overall surface looks fairly concave to me, and i’m getting the error in the image attached. I would rebuild the wall with planar surfaces or triangulate your panels to ensure that they’re all planar.

I have converted every surface of the solid and window to planar, but still running into the same issue ‘Failed to calculate opaque part of the surface. Glazing is removed from zone_0_Srf_XX’. I had to add in some small surfaces to fill the gaps created by converting the indiviudal planes to planar, which is where the ‘A very tiny glazing is removed from zone_0_Srf_XX’ errors comes from and their loss is unimportant. It seems to be related to the shape of the geometry itself, as the error persists when using the ‘glazing based on ration’ Honeybee node.

I’ve attached a download link for the updated version of the geometry and grasshopper files below. In the image of the geometry, the panels with “False” are the problem panels.

This don’t seem to be any documented fixes to this error, so hopefully we can find an answer for anybody in the future struggling with this error. Thanks in advance!