我正在尝试将元素批量导入到企业架构师中。根据某些原因,我们使用"组件"它位于"包装组件" - 这意味着我需要一个创建"包装组件的脚本"其中"组件"。 在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(字符串名称,字符串类型)中的包类型。 这可能就是为什么它只创建包而不是别的。
是否有可能创建包装组件?先谢谢......
干杯
答案 0 :(得分:0)
有两种秘制酱料可以烹制。
您需要在SubType
之后将Update
设置为20
toBeCreatedPackage.Element.SubType = 20;
toBeCreatedPackage.Element.Update();
您需要重新加载模型视图(或重新启动)EA,否则您只会看到一个简单的包图标(虽然它已经是PackagingComponent
)。
Repository.RefreshModelView (root.PackageID):