+ TopAbs_ShapeEnum aGenShapeType = aNewShape.ShapeType();
+ if(aGenShapeType == TopAbs_WIRE || aGenShapeType == TopAbs_SHELL) {
+ TopAbs_ShapeEnum anExplodeShapeType = aGenShapeType == TopAbs_WIRE ? TopAbs_EDGE : TopAbs_FACE;
+ const TDF_Label aLabel = builder(theTag)->NamedShape()->Label();
+ int aTag = 1;
+ std::shared_ptr<Model_Document> aDoc = std::dynamic_pointer_cast<Model_Document>(document());
+ for(TopExp_Explorer anExp(aNewShape, anExplodeShapeType); anExp.More(); anExp.Next()) {
+ TDF_Label aChildLabel = aLabel.FindChild(aTag);
+ TNaming_Builder aBuilder(aChildLabel);
+ aBuilder.Generated(anOldShape, anExp.Current());
+ TCollection_AsciiString aChildName = TCollection_AsciiString((theName + "_").c_str()) + aTag;
+ //aDoc->addNamingName(aChildLabel, aChildName.ToCString());
+ TDataStd_Name::Set(aChildLabel, aChildName.ToCString());
+ aTag++;
+ }
+ }