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:
marcuspollio
2025-10-14 11:19:43 +02:00
committed by GitHub
parent 9fad915d0e
commit d0c7b427ff
2 changed files with 27 additions and 3 deletions

View File

@@ -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: