+ } else if (aType == ModelAPI_AttributeRefAttrList::typeId()) {
+ std::shared_ptr<ModelAPI_AttributeRefAttrList> aRefAttr = std::dynamic_pointer_cast<
+ ModelAPI_AttributeRefAttrList>(anAttr->second);
+ std::list<std::pair<ObjectPtr, AttributePtr> > aRefs = aRefAttr->list();
+ std::list<std::pair<ObjectPtr, AttributePtr> >::const_iterator anIt = aRefs.begin(),
+ aLast = aRefs.end();
+ for (; anIt != aLast; anIt++) {
+ aReferenced.push_back(anIt->first);
+ }
+ } else if (aType == ModelAPI_AttributeInteger::typeId()) { // integer attribute
+ AttributeIntegerPtr anAttribute =
+ std::dynamic_pointer_cast<ModelAPI_AttributeInteger>(anAttr->second);
+ std::set<std::string> anUsedParameters = anAttribute->usedParameters();
+ std::list<ResultParameterPtr> aParameters = findVariables(anUsedParameters);
+ aReferenced.insert(aReferenced.end(), aParameters.begin(), aParameters.end());