如何以编程方式创建企业架构师包、类、属性
本文关键字:属性 企业 编程 方式 创建 | 更新日期: 2023-09-27 18:35:28
我正在尝试使用/理解 C# 中的 Interop.EA 和 EA 类以及如何以编程方式创建图表。
我正在使用来自另一个 Web 应用程序的用户数据(.XML文件(不是 XMI))。
我已经尝试了来自Sparx的CSAddinDemo,它工作正常,但没有显示如何添加/创建新的。
我的目标是用 C# 从 XML 数据创建 EA 类图。
像这样的东西??
public void EA_create()
{
EA.DiagramObject d = new DiagramObject();
EA.Element e = new Element();
EA.Element elementEa = EA.Element.AddNew("Requirement", "non-functional");
elementEa.Update();
elements.Refresh();
//MessageBox.Show("Class created");
}
首先,你需要一个 EA 项目(又名"存储库")来工作。为了创建一个新的 EA 项目 (.EAP 文件),使用 Repository.CreateModel()
.要打开现有文件,请使用 Repository.OpenFile()
。
除了 Repository
类(它是与 EA 的所有交互的顶级类)之外,您不会自己创建对象。相反,您可以在遍历的各种Collections
上调用AddNew()
- 这适用于包,元素,图,图对象,连接器,属性,标记值等。
Repository.Models
就是这样一个集合(Packages
)。
然后,Package
包含其他集合,例如 Packages
、 Elements
和 Diagrams
。Diagram
有一个DiagramObjects
集合。
DiagramObject
是一 (1) 个图中元素的图形表示(请记住,元素只存储在一个包中,但可以在任意数量的图中显示)。
EA 不允许在包树的顶层(称为根节点)创建任何图或元素;必须先创建子包。所以至少你需要创建一个Package
和一个Diagram
,每个元素的多个Elements
和一个DiagramObject
。
因此,在您获得的代码中,AddNew()
不起作用,因为您尝试在Element
上调用它,并且需要在Collection
上调用它。
您对Update()
和Refresh()
的使用是正确的,假设elements
是一个Collection
。必须始终在对对象进行任何更改后调用 Update,并在对集合进行任何更改后调用 Refresh。
帮助文件中有一些很好的入门内容。查看自动化和脚本 - 企业架构师对象模型,并阅读标题为使用自动化接口的部分。
然后,查看参考 - 代码示例,特别是打开存储库以及添加和管理图。
最后,请注意,外接程序是一段扩展 EA 的代码,从 EA 进程内运行。如果要创建新模型或更改现有模型,则不需要这样做;仅当您想要与 EA 的 GUI 集成或响应 EA 触发的各种事件时,才需要编写加载项。