diff --git a/geometry/Building.cpp b/geometry/Building.cpp
index 8c8272f68dd1c49991c012c943a67b1b539b263d..c905a8fb1e1405c5d1e615c815a4a9a1afc92364 100644
--- a/geometry/Building.cpp
+++ b/geometry/Building.cpp
@@ -217,6 +217,26 @@ void Building::AddSurroundingRoom()
                     y_max = (ymax >= y_max) ? ymax : y_max;
                     y_min = (ymin <= y_min) ? ymin : y_min;
                }
+               for(auto&& obs:itr_subroom.second->GetAllObstacles())
+               {
+                    for(auto&& wall: obs->GetAllWalls())
+                    {
+                         double x1 = wall.GetPoint1().GetX();
+                         double y1 = wall.GetPoint1().GetY();
+                         double x2 = wall.GetPoint2().GetX();
+                         double y2 = wall.GetPoint2().GetY();
+
+                         double xmax = (x1 > x2) ? x1 : x2;
+                         double xmin = (x1 > x2) ? x2 : x1;
+                         double ymax = (y1 > y2) ? y1 : y2;
+                         double ymin = (y1 > y2) ? y2 : y1;
+
+                         x_min = (xmin <= x_min) ? xmin : x_min;
+                         x_max = (xmax >= x_max) ? xmax : x_max;
+                         y_max = (ymax >= y_max) ? ymax : y_max;
+                         y_min = (ymin <= y_min) ? ymin : y_min;
+                    }
+               }
           }
      }