VBS를 사용하여 다이어그램에있는 요소를 다이어그램이있는 상위 패키지로 이동합니다. Enterprise Architect 리소스별로 다이어그램 객체에서 요소 ID를 얻습니다. elementID를 사용하는 부모 패키지를 검색하려고하면 정의되지 않은 값을 갖기 때문에 diagramObject 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