- ModelAPI_Feature::setData(theData);
-
- // find sketch that references to this feature
- int aSketches = document()->size("Construction");
- for(int a = 0; a < aSketches && !mySketch; a++) {
- boost::shared_ptr<ModelAPI_Object> anObj =
- boost::dynamic_pointer_cast<ModelAPI_Object>(document()->feature("Construction", a));
- if (anObj) {
- boost::shared_ptr<SketchPlugin_Sketch> aSketch =
- boost::dynamic_pointer_cast<SketchPlugin_Sketch>(anObj->featureRef());
+ if (!mySketch) {
+ // find sketch that references to this feature
+ const std::set<AttributePtr>& aBackRefs = data()->refsToMe();
+ std::set<AttributePtr>::const_iterator aBackRef = aBackRefs.begin();
+ for(; aBackRef != aBackRefs.end(); aBackRef++) {
+ std::shared_ptr<SketchPlugin_Sketch> aSketch =
+ std::dynamic_pointer_cast<SketchPlugin_Sketch>((*aBackRef)->owner());