Enterprise Architect : C# add-in current selected item 标记值

Enterprise architect : C# add-in current selected item tagged value

我在 EA 中有自己的配置文件,我可以提供一个带有特定标签值的自己的注释元素。我的问题是,我想要 select 项目中的一些注释并通过加载项更改标签值。我怎样才能获得当前 selected 元素?

RTM:Respository.GetTreeSelectedObject

您可以使用

Repository.GetContextObject()

获取当前选中的对象。
要获取对象的类型,请使用 Repository.GetContextItemType()

然后您可以将 EA.Element 类型分配给 Repository.GetContextObject()

返回的对象
 private void getSelectedElement(EA.Repository Rep)
            {
                EA.Element ele;
                switch(Rep.GetContextItemType())
                {
                    case EA.ObjectType.otElement:
                        {
                            ele = Rep.GetContextObject();
                            //Operations on the selected element
                            break;
                        }
                } 
            }

如果你想知道所有可能的类型, 请参阅 documentation(这是针对 EA 13)

我使用这个函数 (VBScript)。 它结合了 Mart10qwerty_so:

的答案
function getSelectedElement() ' as EA.Element
    
    dim sel
    
    set sel = Repository.GetContextObject
    if sel is nothing then sel = Repository.GetTreeSelectedObject()
    
    if sel.ObjectType <> otElement then set sel = nothing
    
    set getSelectedElement= sel
end function

主要是查找活动图表的选择,其次是在项目浏览器中,最后过滤 EA.Element-s 。

注意: 方法 GetContextItemType() 的目的对我来说并不明显,因为每个对象都知道它是 属性 ObjectType 的类型。