This commit is contained in:
Andrej730
2024-12-24 12:45:46 +05:00
parent 75483edb22
commit f62b8073c6
2 changed files with 6 additions and 4 deletions
+4 -1
View File
@@ -770,7 +770,10 @@ class AddSlabFromWall(bpy.types.Operator, tool.Ifc.Operator):
return {"FINISHED"} return {"FINISHED"}
walls = tool.Model.get_connected_walls(bpy.context.selected_objects) walls = tool.Model.get_connected_walls(bpy.context.selected_objects)
if not walls: if not walls:
self.report({"WARNING"}, "Please select a closed loop of walls, or deselect the walls to add a slab using the polyline tool.") self.report(
{"WARNING"},
"Please select a closed loop of walls, or deselect the walls to add a slab using the polyline tool.",
)
return {"FINISHED"} return {"FINISHED"}
DumbSlabGenerator(self.relating_type).generate("WALLS") DumbSlabGenerator(self.relating_type).generate("WALLS")
+2 -3
View File
@@ -673,8 +673,7 @@ class Model(bonsai.core.tool.Model):
return axes return axes
@classmethod @classmethod
def get_connected_walls( def get_connected_walls(cls, walls: list[bpy.types.Object]) -> list[bpy.types.Object]:
cls, walls: list[bpy.types.Object]) -> list[bpy.types.Object]:
""" """
Loop through walls by retrieving the next connected wall using the connection path. Loop through walls by retrieving the next connected wall using the connection path.
If the function encounters the first wall again, it will return the list of connected walls. If the function encounters the first wall again, it will return the list of connected walls.
@@ -697,7 +696,7 @@ class Model(bonsai.core.tool.Model):
next_wall = path.RelatedElement if path.RelatedElement != current_wall else path.RelatingElement next_wall = path.RelatedElement if path.RelatedElement != current_wall else path.RelatingElement
if next_wall == previous_wall: if next_wall == previous_wall:
continue continue
if next_wall != current_wall and next_wall != first_wall and next_wall not in ordered_walls: if next_wall != current_wall and next_wall != first_wall and next_wall not in ordered_walls:
ordered_walls.append(next_wall) ordered_walls.append(next_wall)
previous_wall = current_wall previous_wall = current_wall