Creating regions from curves

I have extrapolated the room areas, however, someone on the team created gaps that wouldn’t work in an energy model where I need all the walls to be attached side to side (basically a wall is a paper) so now I got the lines between the walls around the centerlines and I want to create new regions (rooms) I have a problem the code just gives me nulls. here is the code:

import Rhino.Geometry as rg

def find_enclosed_regions(curves, tol):
    # Create a list to store the enclosed regions
    enclosed_regions = []
    
    # Loop through each curve in the list
    for i, crv1 in enumerate(curves):
        # Create an empty list to store the curves that are enclosed by the current curve
        enclosed_curves = []
        
        # Check if the curve is closed
        if not crv1.IsClosed:
            continue
            
        # Loop through the remaining curves in the list
        for j, crv2 in enumerate(curves[i+1:], i+1):
            # Check if the curve is closed
            if not crv2.IsClosed:
                continue
                
            # Check if the first curve contains the second curve
            if crv1.Contains(crv2, rg.Plane.WorldXY, tol, True):
                enclosed_curves.append(crv2)
            
            # Check if the second curve contains the first curve
            elif crv2.Contains(crv1, rg.Plane.WorldXY, tol, True):
                enclosed_curves.append(crv1)
                
        # If there are any enclosed curves, add them to the list of enclosed regions
        if enclosed_curves:
            enclosed_curves.append(crv1)
            enclosed_regions.append(enclosed_curves)
            
    return enclosed_regions

It’s possible that the null values are being returned because there is a problem with the tolerance value that is being used. Try adjusting the tolerance value to see if that solves the problem.

Furthermore, it’s important to make sure that all of the curves in the list are valid and that there are no duplicates or overlapping curves. You can use the JoinCurves method to merge any overlapping or adjacent curves in the list before passing them to the find_enclosed_regions function.