- aName += QString( "_vertex_%1" ).arg( anIndex );
-
- TopTools_IndexedMapOfShape aShapes;
- TopExp::MapShapes( aShape, aShapes );
- aShape = aShapes.FindKey( anIndex );
+ aName += QString( ":vertex_%1" ).arg( anIndex );
+
+ //Find SubShape Object in Father
+ GEOM::GEOM_Object_var aFindedObject = GEOMBase_Helper::findObjectInFather( aSelectedObj, aName );
+ if ( aFindedObject->_is_nil() ) { // Object not found in study
+ GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations( getStudyId() );
+ aSelectedObj = aShapesOp->GetSubShape( aSelectedObj, anIndex );
+ }
+ else {
+ aSelectedObj = aFindedObject; // get Object from study
+ }