I’m currently trying to use the Ruby API to automatically detect
- the surface area of my house
- find rooms in the inside
With the easiest model I can imagine (a cube), this is straightforward. I either detect the floor and use it’s edges to find the horizontal faces, or I use a group to get the bounding box, both gives me the height, width and depth of my model. This get’s more complicated when my the walls are modeled with a depth, there are multiple rooms that don’t necessarily have a rectangle bounding box and all kind of other problems.
To solve this, I first tried generating a point cloud and construct a convex hull, which only works for special cases (rectangle models), at least it doesn’t care if the model doesn’t align to the axes. After a bit more googling, I apparently need to calculate concave hulls, but depending on the points, there are multiple solutions.
I think constructing the area like this is way overkill and even then not reliable, but I’m not sure how I can incorporate edge/face information into my calculation.
How would you solve this problem? Do you have any suggestions?