Validating Non-Manifold Honeybee Zone Geometry and Coplanar Glazing Normals Before Radiance Daylighting Runs

When translating complex Rhino/Grasshopper architectural massing models into Honeybee rooms for Radiance daylighting or OpenStudio energy simulations, tiny sliver faces and inverted window normal vectors frequently cause rtrace ray-leakage or OS_PortList adjacency mismatches.

Before serializing rooms to .hbjson, running a strict coplanarity and outward-normal check in Grasshopper Python prevents broken aperture intersections:

import Rhino.Geometry as rg

def validate_brep_room(brep, tol=0.001):
    if not brep.IsSolid:
        return False, "Open B-Rep shell detected"
    if brep.SolidOrientation == rg.BrepSolidOrientation.Inward:
        brep.Flip()
    return True, f"Valid closed volume: {brep.GetVolume():.3f} m3"

For teams exchanging BIM geometry across IFC, STEP, and DXF pipelines before environmental analysis, we also maintain an open schema reference at CADGuide.tools ISO 16739 IFC & CAD Interoperability Reference.

What tolerance threshold are folks using in Rhino 8 when running HB Intersect Solids on curved curtain-wall facades?

Radiance supports curved geometry BUT generally with LBT stuff; curved geometry should be converted to a polygon mesh before simulation, rather than using NURBS geometry.
as for intersect solids, using units of meters with 0.001 absolute tolerance plays well with the tools, for me at least.
hopefully something in that is helpful :sweat_smile:

best
-trevor