5

我有一个包含多个图表(带有元素)的项目。我想关闭这个特定项目并将图表移动到其他更合适的项目。

移动图表很简单。问题是现在我必须手动找到与这个特定图表相关的所有元素,并将它们一一移动到另一个项目。因为我在原始项目的所有图表中都有很多元素,所以这很乏味。

我想知道在 EA 中是否有更简单的方法来处理这样的重构?

4

3 回答 3

5

在开箱即用的 EA 中没有更简单的方法,没有。但有志者事竟成。

首先,复制您的项目。我描述的解决方案会破坏它的结构。

其次,创建一个空包并将图表移到那里。

第三,在Browserscript组中创建一个VBScript(Tools - Scripting)。称之为“收集图表元素”。在编辑器中,将注释掉的otDiagram大小写替换为以下内容:

case otDiagram
    ' Code for when a diagram is selected
    dim theDiagram as EA.Diagram
    set theDiagram = Repository.GetTreeSelectedObject()
    dim dObj as EA.DiagramObject
    dim element as EA.Element
    for each dObj in theDiagram.DiagramObjects
        set element = Repository.GetElementByID(dObj.ElementID)
        element.PackageID = theDiagram.PackageID
        element.Update()
    next

该脚本遍历图表中显示的所有元素,并将它们移动到图表所在的包中。

通过右键单击包浏览器中的图表并选择脚本 - 收集图表元素来运行脚本。脚本完成后,您可能需要重新加载包(在包浏览器中右键单击包,选择 Contents - Reload Current Package)。

最后,将包导出到 XMI(在包浏览器中右键单击,选择 Import/Export - Export Package to XMI File),然后将其导入到您的目标项目中。

于 2013-08-05T06:35:14.760 回答
0

您还可以尝试将您的图表放在一个包中,然后将其导出到 XML 文件并从目标项目中导入。

于 2016-03-17T15:59:47.883 回答
-1

这可能会有所帮助:

适用于 EA 版本 15

项目 1 -从您要复制图表的位置

  1. 在图表上执行 Ctrl+A(全选)。
  2. 发布 -> 保存 -> 保存到剪贴板。

项目 2 -将粘贴图表的位置

  1. 创建一个空图表。
  2. 右键单击(在空图表上)-> 粘贴-> 剪贴板中的图像

适用于 EA 版本 10

项目 1 -从您要复制图表的位置

  1. 在图表上执行 Ctrl+A(全选)。
  2. 编辑 -> 项目剪贴板 -> 添加到项目剪贴板。

项目 2 -将粘贴图表的位置

  1. 创建一个空图表。
  2. 编辑 -> 从剪贴板粘贴图像。

这会将图表复制为整个图像(单个组件),我认为一旦将图表粘贴到新项目中,您将无法更改图表的实际组件。

于 2021-07-07T09:13:49.200 回答