从图表对象中获取元素对象的包ID

时间:2017-04-15 00:30:41

标签: enterprise-architect

我正在使用VBS将图表中找到的元素移动到图表所在的父包中。根据Enterprise Architect资源,我从图表对象中获取元素ID。似乎diagramObject elementID不等同于元素的elementID,因为尝试检索使用elementID的父包给了我一个未定义的值。

有没有办法从图表对象中获取元素的父包?

编辑:添加了我正在使用的代码

特定部分():

        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

2 个答案:

答案 0 :(得分:2)

在更改PackageID后,您永远不会更新Picasso.with(context).load(user.getPhotoUrl()).into(foto); 。一旦你这样做,一切都应该没问题。

答案 1 :(得分:1)

以下是documentation

的链接

您必须首先从DiagramObject获取元素,因为DiagramObject不是元素

element=Repository.GetElementByID(yourDiagramObject.ElementID)
packageID=element.PackageID