我正在使用VBS将图中找到的元素移动到图所在的父包。根据Enterprise Architect资源,我从图表对象中获取元素ID。看起来diagramObject elementID不等于元素的elementID,因为试图检索使用elementID的父包给我一个未定义的值。从图对象中获取元素对象的包ID
有没有一种方法可以从图表对象中获取元素的父包?
dim diagObject
set diagObject = package.Diagrams.GetAt(i).DiagramObjects.GetAt(j)
'add element to list and track its origin
dim elementID
elementID = diagobject.ElementID
dim element
set element = Repository.GetElementByID(elementID)
Session.Prompt elementID, promptOK
Session.Prompt "Test: " & element.PackageID, promptOK
整体功能:
编辑:我使用
特定部分()添加的代码
Function prepare(package)
'define parent package id
dim parentID
parentID = package.PackageID
'iterate through diagrams
Dim i
For i = 0 to Package.Diagrams.Count-1
'iterate through diagram objects
Session.Prompt "iterate through diagram objects", promptOK
Dim j
For j = 0 to package.Diagrams.GetAt(i).DiagramObjects.Count-1
'Check if the object is a element
Session.Prompt package.Diagrams.GetAt(i).DiagramObjects.GetAt(j).ObjectType, promptOK
If (19 = package.Diagrams.GetAt(i).DiagramObjects.GetAt(j).ObjectType) Then
Session.Prompt "IS A element", promptOK
dim diagObject
set diagObject = package.Diagrams.GetAt(i).DiagramObjects.GetAt(j)
'add element to list and track its origin
dim elementID
elementID = diagobject.ElementID
dim element
set element = Repository.GetElementByID(elementID)
Session.Prompt elementID, promptOK
Session.Prompt "Test: " & element.PackageID, promptOK
originList.Add elementID, element.PackageID
Session.Prompt PackageID, promptOK
'move element to currently selected package
element.PackageID = parentID
Session.Prompt "Moved", promptOK
End If
Next
Next
请发布您正在使用的代码。 ESP。你如何检索父包。 –
我已更新我的问题以包含我正在使用的代码。 – Cgrillo