2017-06-24 12 views
1

エンタープライズ設計者に要素を一括インポートしようとしています。何らかの理由で私たちは "パッケージングコンポーネント"にある "コンポーネント"を使ってモデルを構造化しました。つまり、 "パッケージングコンポーネント"とその中の "コンポーネント"を作成するスクリプトが必要です。 は、APIの要素とパッケージを作成する可能性があります - 以下のC#コードで:Enterprise Architect API:パッケージ化コンポーネントの作成

は、コンポーネントを作成します。

Element toBeCreatedComponent = root.Elements.AddNew(name, "Component"); 
if (!toBeCreatedComponent.Update()) 
{ 
    Console.WriteLine(toBeCreatedComponent.GetLastError()); 
    System.Environment.Exit(-1); 
} 
root.Elements.Refresh(); 

これは正常に動作します - 以下のコードとパッケージのために:

Package toBeCreatedPackage = root.Packages.AddNew(name, "Package"); 
if (!toBeCreatedPackage.Update()) 
{ 
    Console.WriteLine(toBeCreatedPackage.GetLastError()); 
    System.Environment.Exit(-1); 
} 
root.Elements.Refresh(); 

これもうまくいきますが、単一のパッケージが作成されます。私はPackaginコンポーネントが必要です!私は、パッケージ化コンポーネントのタイプとして試しましたが、これはうまくいきません。 そして退屈な検索の後、私は最終的に、sparxがEnterprise Architectオブジェクトモデル内の特定のオブジェクトの「AddNew」APIを記述しているドキュメントを見つけました。そこには次のようなものがあります:Packages.AddNew(string name、string type )は使用されません。 これは、パッケージのみを作成し、それ以外は作成しない理由です。

パッケージコンポーネントを作成する可能性はありますか?おかげで先行...

乾杯

答えて

0

その料理を調理するための2つの秘密のソースがあります。あなたは、モデルビューをリロード(または再起動)する必要があり

  • toBeCreatedPackage.Element.SubType = 20; 
    toBeCreatedPackage.Element.Update(); 
    

    のような上記UpdateSubType 20に設定する必要があり

    1. EAまたはあなただけのシンプルなパッケージのアイコンが表示されます(すでにPackagingComponentですが)。

      Repository.RefreshModelView (root.PackageID):