Enterprise Architect API:创建包装组件

时间:2017-06-24 06:33:25

标签: enterprise-architect

我正在尝试将元素批量导入到企业架构师中。根据某些原因,我们使用"组件"它位于"包装组件" - 这意味着我需要一个创建"包装组件的脚本"其中"组件"。 在API中,可以使用以下C#代码创建元素和包:

创建组件:

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描述了" AddNew" Enterprise Architect对象模型中某些对象的API - 他们说:不使用Packages.AddNew(字符串名称,字符串类型)中的包类型。 这可能就是为什么它只创建包而不是别的。

是否有可能创建包装组件?先谢谢......

干杯

1 个答案:

答案 0 :(得分:0)

有两种秘制酱料可以烹制。

  1. 您需要在SubType之后将Update设置为20

    toBeCreatedPackage.Element.SubType = 20;
    toBeCreatedPackage.Element.Update();
    
  2. 您需要重新加载模型视图(或重新启动)EA,否则您只会看到一个简单的包图标(虽然它已经是PackagingComponent)。

    Repository.RefreshModelView (root.PackageID):