From dbd2bade1e7444b1028f34d6ec358bcf418b8f22 Mon Sep 17 00:00:00 2001 From: Yash Suthar Date: Wed, 17 Dec 2025 21:54:35 +0530 Subject: [PATCH] Part: added floating point fallback in PropertyLinks::_updateElementReference Signed-off-by: Yash Suthar --- src/App/PropertyLinks.cpp | 6 +++++- src/Mod/Part/App/PartFeature.cpp | 4 +++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/App/PropertyLinks.cpp b/src/App/PropertyLinks.cpp index 6cd257459c..2740173467 100644 --- a/src/App/PropertyLinks.cpp +++ b/src/App/PropertyLinks.cpp @@ -472,7 +472,11 @@ bool PropertyLinkBase::_updateElementReference(DocumentObject* feature, // to version change, i.e. 'reverse', try search by geometry first const char* oldElement = Data::findElementName(shadow.oldName.c_str()); if (!Data::hasMissingElement(oldElement)) { - const auto& names = geo->searchElementCache(oldElement); + auto names = geo->searchElementCache(oldElement); + if (names.empty()) { + // try floating point tolerance + names = geo->searchElementCache(oldElement, Data::SearchOptions()); + } if (names.size()) { missing = false; std::string newsub(subname, strlen(subname) - strlen(element)); diff --git a/src/Mod/Part/App/PartFeature.cpp b/src/Mod/Part/App/PartFeature.cpp index abb1421412..dd1d3ba3b7 100644 --- a/src/Mod/Part/App/PartFeature.cpp +++ b/src/Mod/Part/App/PartFeature.cpp @@ -1578,9 +1578,11 @@ const std::vector& Feature::searchElementCache( break; } } - it->second.searched = true; propShape->getShape() .findSubShapesWithSharedVertex(it->second.shape, &it->second.names, options, tol, atol); + if (!it->second.names.empty()) { + it->second.searched = true; + } if (prefix) { for (auto& name : it->second.names) { if (auto dot = strrchr(name.c_str(), '.')) {