2017-07-03 100 views
1

我有一个JScript在企业级结构,其应根据https://stackoverflow.com/a/28810123隐藏通过设置DiagramLinks的几何特性的“HDN”属性一些连接器标签至1:企业架构师脚本不更新图

// Get a reference to the current diagram 
var currentDiagram as EA.Diagram; 
currentDiagram = Repository.GetCurrentDiagram(); 

if (currentDiagram != null) 
{ 
    for (var i = 0; i < currentDiagram.DiagramLinks.Count; i++) 
    { 
     var currentDiagramLink as EA.DiagramLink; 
     currentDiagramLink = currentDiagram.DiagramLinks.GetAt(i); 

     currentDiagramLink.Geometry = currentDiagramLink.Geometry 
      .replace(/HDN=0/g, "HDN=1") 
      .replace(/LLT=;/, "LLT=HDN=1;") 
      .replace(/LRT=;/, "LRT=HDN=1;"); 
     if (!currentDiagramLink.Update()) 
     { 
      Session.Output(currentDiagramLink.GetLastError()); 
     } 
    } 
} 

然而,该图不会更新(视图不会更改)。我错过了什么吗?

第二次执行该脚本时,我可以在调试器中看到新的几何值仍然存在,但似乎没有得到应用。

回答

1

图表不会更新任何元素更改(嗯,通常在大多数情况下;这是EA)。您需要重新加载更改的图表

Repository.ReloadDiagram (currentDiagram.DiagramID); 
+0

谢谢,这有助于更新视图!还有一个问题,也许你也了解:实际上,我只想隐藏连接器的源头和目标“顶部标签”部分,而不是“底部标签”。但是,如果手动执行,则几何属性对于这两种情况看起来完全相同。你知道如何以编程方式实现这个吗? – blackcomb

+0

你应该问一个新的问题。那晚的晚些时候我会看看。应该是可以的。 –

+0

我感谢您的帮助。我在这里创建了一个新问题:https://stackoverflow.com/q/44889397/3775882 – blackcomb