2017-07-03 97 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