izb*_*ick 3 c# enterprise-architect
我正在尝试使用/了解C#中的Interop.EA和EA类以及如何以编程方式创建图表.
我正在使用来自其他Web应用程序的用户数据(.XML文件(不是XMI)).
我已经尝试过Sparx的CSAddinDemo并且它工作正常,但没有显示如何添加/创建新的.
我的目标是在C#中创建EA类图表格式的XML数据.
这样的事情?
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");
}
Run Code Online (Sandbox Code Playgroud)
首先,您需要一个EA项目(也称为"存储库")才能工作.为了创建一个新的EA项目(.EAP文件),请使用Repository.CreateModel().要打开现有的,请使用Repository.OpenFile().
除了Repository类(与EA的所有交互的顶级类)之外,您不会自己创建对象.相反,你调用你遍历AddNew()的各种Collections- 这适用于包,元素,图表,图表对象,连接器,属性,标记值等.
Repository.Models就是这样一个集合Packages.
Package然后A 包含其他集合,例如Packages,Elements和Diagrams.A Diagram有一个集合DiagramObjects.
阿DiagramObject是一(1)图中的元素的图形表示(记住,一个元件被存储在恰好一个包,但可以显示在任何数目的图表).
EA不允许您在包树的顶层创建任何图表或元素(称为根节点); 你必须先创建一个子包.所以至少你需要为每个元素创建一个Package和一个Diagram,一个Elements和一个DiagramObject.
所以在你已经得到的代码中,AddNew()因为你试图在它上面调用它而无法工作Element,你需要在它上面调用它Collection.
你使用Update()和Refresh()是正确的,假设elements是一个Collection.您必须始终在对对象进行任何更改后调用Update,并在对集合进行任何更改后刷新.
帮助文件中有一些很好的入门内容.查看自动化和脚本 - Enterprise Architect对象模型,并阅读标题为使用自动化接口的部分.
然后,查看Reference - Code Samples,特别是Open the Repository和Add and Manage Diagrams.
最后,请注意,加载项是一段扩展EA的代码,并在EA流程中运行.如果要创建新模型或对现有模型进行更改,则无需执行此操作; 如果要与EA的GUI集成或响应EA触发的各种事件,您只需要编写一个加载项.
| 归档时间: |
|
| 查看次数: |
4681 次 |
| 最近记录: |