Problem
All Elements of a package should be retrieved.
Approach – Ansatz
The method getElementsOfElement, which has been defined in the previous article is used to add all subelements of a package.
Lösung – Solution
public List<EA.Element> getElementsOfPackage(EA.Package package, string packageName)
{
List<EA.Element> elementsOfPackage = new List<EA.Element>();
// Only list the elements if the actual package is connected to a DOORS module
if (package.Name == packageName)
{
foreach (EA.Element element in package.Elements)
{
elementsOfPackage.Add(element);
elementsOfPackage.AddRange(getElementsOfElement(element));
}
}
foreach (EA.Package subPackage in package.Packages)
{
elementsOfPackage.AddRange(getElementsOfPackage(subPackage, packageName));
}
return elementsOfPackage;
}
private List<EA.Element> getElementsOfElement(EA.Element actualElement)
{
List<EA.Element> elementsOfElement = new List<EA.Element>();
EA.Collection elements;
elements = actualElement.Elements;
foreach (EA.Element element in elements)
{
elementsOfElement.Add(element);
elementsOfElement.AddRange(getElementsOfElement(element));
}
return elementsOfElement;
}