- theDumper << aBase << " = model.addRemoveSubShapes(" << aDocName <<
- ", " << anAttrBaseShape << ")" << std::endl;
- theDumper << aBase << ".setSubShapesToKeep(" << anAttrSubShapes << ")" << std::endl;
+ std::string aCreationMethod =
+ aBase->string(FeaturesPlugin_RemoveSubShapes::CREATION_METHOD())->value();
+
+ AttributeSelectionListPtr anAttrSubShapes;
+
+ bool isKeepSubs =
+ aCreationMethod == FeaturesPlugin_RemoveSubShapes::CREATION_METHOD_BY_KEEP_SUBSHAPES();
+ if (isKeepSubs) {
+ anAttrSubShapes =
+ aBase->selectionList(FeaturesPlugin_RemoveSubShapes::SUBSHAPES_TO_KEEP_ID());
+ }
+ else {
+ anAttrSubShapes =
+ aBase->selectionList(FeaturesPlugin_RemoveSubShapes::SUBSHAPES_TO_REMOVE_ID());
+ }
+
+ theDumper << aBase << " = model.addRemoveSubShapes("
+ << aDocName << ", " << anAttrBaseShape << ")"
+ << "\n"
+ << theDumper.name(aBase)
+ << (isKeepSubs ? ".setSubShapesToKeep(" : ".setSubShapesToRemove(")
+ << anAttrSubShapes << ")" << std::endl;