我正在使用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