<< 目次を表示 >> ページ位置: API・アドイン・スクリプト > API > サンプルコード > モデル内の探索 |
プロジェクトのモデル内を再帰的に探索するサンプルです。
class DumpSample
{
//モデルルートに対して処理を実行します。
public void DumpModel(EA.Repository repository)
{
// このメソッドが呼び出される前にリポジトリrepositoryは開かれていると仮定します。
foreach (EA.Package package in repository.Models)
{
DumpPackage("", package);
}
}
//パッケージの名前とパッケージに含まれる要素を表示し、子パッケージの内容を再帰的に表示します。
private void DumpPackage(string indent, EA.Package package)
{
Console.WriteLine(indent + package.Name + "::" + package.PackageID);
DumpElements(indent + " ", package);
foreach (EA.Package childPackage in package.Packages)
{
DumpPackage(indent + " ", childPackage);
}
}
//パッケージ内の要素を探索します。
private void DumpElements(string indent, EA.Package package)
{
foreach (EA.Element element in package.Elements)
{
DumpElement(indent, element);
}
}
//要素名を出力し、再帰的に子要素を探索します。
private void DumpElement(string indent, EA.Element element)
{
Console.WriteLine(indent + "::" + element.Name + "::" + element.ElementID);
foreach (EA.Element childElement in element.Elements)
{
DumpElement(indent + " ", childElement);
}
}
}