diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemConstraintElectrostaticPotential.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemConstraintElectrostaticPotential.py index 43e5dfb576..c65860e1e0 100644 --- a/src/Mod/Fem/femguiobjects/_ViewProviderFemConstraintElectrostaticPotential.py +++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemConstraintElectrostaticPotential.py @@ -68,7 +68,7 @@ class _TaskPanel(object): FreeCAD.getHomePath() + "Mod/Fem/Resources/ui/ElectrostaticPotential.ui") self._initParamWidget() self.form = [self._refWidget, self._paramWidget] - analysis = femutils.findAnalysisOfMember(obj) + analysis = obj.getParentGroup() self._mesh = femutils.get_single_member(analysis, "Fem::FemMeshObject") self._part = None if self._mesh is not None: diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemConstraintFlowVelocity.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemConstraintFlowVelocity.py index 3adcda1d32..23f6a26883 100644 --- a/src/Mod/Fem/femguiobjects/_ViewProviderFemConstraintFlowVelocity.py +++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemConstraintFlowVelocity.py @@ -69,7 +69,7 @@ class _TaskPanel(object): ) self._initParamWidget() self.form = [self._refWidget, self._paramWidget] - analysis = femutils.findAnalysisOfMember(obj) + analysis = obj.getParentGroup() self._mesh = femutils.get_single_member(analysis, "Fem::FemMeshObject") self._part = None if self._mesh is not None: diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemConstraintInitialFlowVelocity.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemConstraintInitialFlowVelocity.py index d3b11a82c6..f871659efd 100644 --- a/src/Mod/Fem/femguiobjects/_ViewProviderFemConstraintInitialFlowVelocity.py +++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemConstraintInitialFlowVelocity.py @@ -65,7 +65,7 @@ class _TaskPanel(object): FreeCAD.getHomePath() + "Mod/Fem/Resources/ui/InitialFlowVelocity.ui") self._initParamWidget() self.form = [self._paramWidget] - analysis = femutils.findAnalysisOfMember(obj) + analysis = obj.getParentGroup() self._mesh = femutils.get_single_member(analysis, "Fem::FemMeshObject") self._part = None if self._mesh is not None: diff --git a/src/Mod/Fem/femsolver/elmer/equations/equation.py b/src/Mod/Fem/femsolver/elmer/equations/equation.py index b78c818fc4..c40ddf6f6f 100644 --- a/src/Mod/Fem/femsolver/elmer/equations/equation.py +++ b/src/Mod/Fem/femsolver/elmer/equations/equation.py @@ -75,7 +75,7 @@ class _TaskPanel(object): self.form = self._refWidget else: self.form = [self.refWidget, propWidget] - analysis = femutils.findAnalysisOfMember(obj) + analysis = obj.getParentGroup() self._mesh = femutils.get_single_member(analysis, "Fem::FemMeshObject") self._part = self._mesh.Part if self._mesh is not None else None self._partVisible = None diff --git a/src/Mod/Fem/femsolver/elmer/writer.py b/src/Mod/Fem/femsolver/elmer/writer.py index 9828814bef..66e67781fe 100644 --- a/src/Mod/Fem/femsolver/elmer/writer.py +++ b/src/Mod/Fem/femsolver/elmer/writer.py @@ -93,7 +93,7 @@ def getConstant(name, dimension): class Writer(object): def __init__(self, solver, directory, testmode=False): - self.analysis = femutils.findAnalysisOfMember(solver) + self.analysis = solver.getParentGroup() self.solver = solver self.directory = directory self.testmode = testmode diff --git a/src/Mod/Fem/femsolver/run.py b/src/Mod/Fem/femsolver/run.py index 9a77aa49b3..32a44e7fd5 100644 --- a/src/Mod/Fem/femsolver/run.py +++ b/src/Mod/Fem/femsolver/run.py @@ -299,7 +299,7 @@ class BaseTask(task.Thread): @property def analysis(self): - return femutils.findAnalysisOfMember(self.solver) + return self.solver.getParentGroup() class Machine(BaseTask): @@ -528,7 +528,7 @@ class _DocObserver(object): _machines[o].reset() def _checkSolver(self, obj): - analysis = femutils.findAnalysisOfMember(obj) + analysis = obj.getParentGroup() for m in iter(_machines.values()): if analysis == m.analysis and obj == m.solver: m.reset() @@ -546,7 +546,7 @@ class _DocObserver(object): def _checkModel(self, obj): if self._partOfModel(obj): - analysis = femutils.findAnalysisOfMember(obj) + analysis = obj.getParentGroup() if analysis is not None: self._resetAll(analysis) diff --git a/src/Mod/Fem/femtools/femutils.py b/src/Mod/Fem/femtools/femutils.py index 1fa99717d5..b6545a9434 100644 --- a/src/Mod/Fem/femtools/femutils.py +++ b/src/Mod/Fem/femtools/femutils.py @@ -66,35 +66,6 @@ def createObject(doc, name, proxy, viewProxy=None): return obj -def findAnalysisOfMember(member): - """ Find Analysis the *member* belongs to. - - :param member: a document object - - :returns: - If a analysis that contains *member* can be found a reference is returned. - If no such object exists in the document of *member*, ``None`` is returned. - """ - if member is None: - raise ValueError("Member must not be None") - for obj in member.Document.Objects: - if obj.isDerivedFrom("Fem::FemAnalysis"): - if member in obj.Group: - return obj - if _searchGroups(member, obj.Group): - return obj - return None - - -def _searchGroups(member, objs): - for o in objs: - if o == member: - return True - if hasattr(o, "Group"): - return _searchGroups(member, o.Group) - return False - - def get_member(analysis, t): """ Return list of all members of *analysis* of type *t*.