I have many 3D house models in triangular mesh format. But the common problem is that they all lack doors and windows like in the figure below
I wonder if there is a way I can detect these doors and windows so that I can fill them by "sealing" them with another plane? I've tried putting a convex hull around the house but they do not always tightly fit these windows. My goal is to make them watertight. I'm familiar with a bunch of 3D graphics algorithms but do not know a good way to do so. I know there are hole-filling algorithms but in my case, these windows are not considered as holes by those methods because it is not just one surface.