BIM: Prevent crash when removing a wall's base component (#24633)
* BIM: Prevent crash when removing a wall's base component When a user selected a wall's base object in the Tree View and used the `Arch_Remove` command, a traceback occurred due to an `AttributeError`. The `removeComponents` function was incorrectly checking for the `.Base` attribute on a list of subtractions (`s.Base`) instead of on the parent host object (`h.Base`). This commit corrects the reference to check against the parent object, resolving the crash and allowing the component to be removed. Fixes: https://github.com/FreeCAD/FreeCAD/issues/24532 Authored-by: furgo16 <148809153+furgo16@users.noreply.github.com> * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Co-authored-by: Furgo <148809153+furgo16@users.noreply.github.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This commit is contained in:
@@ -263,9 +263,10 @@ def removeComponents(objectsList, host=None):
|
||||
s.remove(o)
|
||||
h.Subtractions = s
|
||||
o.ViewObject.show()
|
||||
elif o == s.Base:
|
||||
s.Base = None
|
||||
o.ViewObject.show()
|
||||
elif o == h.Base:
|
||||
h.Base = None
|
||||
if FreeCAD.GuiUp:
|
||||
o.ViewObject.show()
|
||||
elif tp in ["SectionPlane"]:
|
||||
a = h.Objects
|
||||
if o in a:
|
||||
|
||||
Reference in New Issue
Block a user