An idea:
-
Get a bounding box for the entire model and scale it up 2x about the centroid.
-
Create a series of room separation lines at the limits of this bounding box.
-
Place a room 1 unit away from the maximum point at each level.
-
Get the bounding elements for each room.
This may miss some small walls (IE a stone base around a foundation) but it should get most, and would allow you to query the length or area.
Getting the geometry of the ‘outside’ room might allow for a “does Intersect” test as another means, but would be VERY slow.