Enterprise Architect Python 脚本 - 向图表添加元素

Enterprise Architect Python Scripting - Add an element to a Diagram

我正在尝试编写一个 python 脚本,以便我可以将元素添加到 Sparx Enterprise Architect 中的图表。

TestDiagEl=TestDiag.DiagramObjects.AddNew("l=10;r=110;t=-20;b=-80","")
TestDiagEl.ElementID=TestEl.ElementID
TestDiagEl.Update
TestDiag.Update
eaRep.ReloadDiagram(TestDiag.DiagramID)

好像不行,我哪里做错了?

编辑 看来@geert是对的,另外我没有在更新后添加()。

编写代码时,您应该知道每一行代码的作用以及编写代码的原因。

在这种情况下

TestDiagEl=TestDiag.DiagramObjects.AddNew("l=10;r=110;t=-20;b=-80","")

在内存中创建一个新的图表对象

TestDiagEl.ElementID=TestEl.ElementID

将图表对象的元素 ID 设置为我的元素的元素 ID

TestDiagEl.Update

将图表对象保存到数据库

TestDiag.Update

将内存中的当前图表保存到数据库中

eaRep.ReloadDiagram(TestDiag.DiagramID)

从数据库中获取图表详细信息并在 GUI 中显示它们

一个问题是TestDiag.Update。由于内存中的图表还不知道新的 DiagramObject,因此您实际上正在撤消添加的新 DiagramObject。去掉那一行,一切就OK了。

另一个问题是您传递给 DiagramObjects.AddNew 方法的参数。正如您在提供的 documentation 中看到的那样,最高值和最低值应该是正数,所以:

TestDiagEl=TestDiag.DiagramObjects.AddNew("l=10;r=110;t=20;b=80","")