+ const ResultPtr& theContext, const std::shared_ptr<GeomAPI_Shape>& theSubShape,
+ const bool theTemporarily)
+{
+ // do not use the degenerated edge as a shape, a list is not incremented in this case
+ if (theSubShape.get() && !theSubShape->isNull() && theSubShape->isEdge()) {
+ const TopoDS_Shape& aSubShape = theSubShape->impl<TopoDS_Shape>();
+ if (aSubShape.ShapeType() == TopAbs_EDGE && BRep_Tool::Degenerated(TopoDS::Edge(aSubShape))) {
+ return;
+ }
+ }
+
+ int aNewTag = mySize->Get() + 1;
+ TDF_Label aNewLab = mySize->Label().FindChild(aNewTag);
+
+ std::shared_ptr<Model_AttributeSelection> aNewAttr =
+ std::shared_ptr<Model_AttributeSelection>(new Model_AttributeSelection(aNewLab));
+ if (owner()) {
+ aNewAttr->setObject(owner());
+ }
+ aNewAttr->setID(id());
+ mySize->Set(aNewTag);
+ aNewAttr->setValue(theContext, theSubShape, theTemporarily);
+ if (theTemporarily)
+ myTmpAttr = aNewAttr;
+ else
+ myTmpAttr.reset();
+ owner()->data()->sendAttributeUpdated(this);
+}
+
+void Model_AttributeSelectionList::append(std::string theNamingName)