你將基本上做的是創建一個概覽圖,只需從瀏覽器中拖放相關圖即可。這提供了一個選擇框
,你只是離開第一選擇Diagram Frame
。 EA將創建一個新的對象,其名稱中提供了一個名稱(如果您有需要,您可以離開它,但也可以更改它)。現在拖動的圖表將顯示在總覽圖上的命名框架內。您無法縮放此圖,因此它將具有原始圖的大小加上其周圍的框架。
注意:您可以在上面的對話框中使用Hyperlink
來創建用於導航的圖表之間的好的和短的鏈接。
現在用於腳本部分。我將使用元語言,但您可能會猜測如何使用您的首選語言。首先要找到總覽圖。您可以通過在瀏覽器中右鍵單擊並使用Copy/Copy Node GUID...
來查詢其圖guid。現在與ID可以通過(下面的示例GUID)找到它:
overview = rep.GetDiagramByGUID("{A006B95E-1237-4778-A339-D1B407C6FD5C}")
下一步是找到你要顯示的概述單圖。這取決於你如何找到它們。最終他們將在存儲庫中的某些位置。靜態加載在第一根部的第一視圖中的第一包中的第一個圖,你會打電話
model = repository.Models.GetAt(0)
view = model.Packages.GetAt(0)
package1 = view.Packages.GetAt(0)
dia1 = package1.Diagrams.GetAt(0)
你可能會用更聰明的方式來迭代,並找到相關的圖表。
現在您可以使用這些圖表對象來創建圖框。這需要放在一個包中。爲了簡單起見,我使用了package1
,但您最終將它們放在概覽圖的包中。
frame = package1.Elements.AddNew(dia1.Name, "UMLDiagram")
frame.Update()
sql = "UPDATE t_object SET PDATA1=" + str(dia1.DiagramID) + " WHERE Object_ID=" + str(overview.diagramID
repository.Execute(sql)
這是巫術,我知道。 API不提供將UMLDiagram元素與參考圖鏈接的方法。所以這個必須直接插入到數據庫中。
最後,新創建的幀的對象可以放置在概覽圖:
diagramObj = overview.DiagramObjects.AddNew("l=10;r=110;t=-20;b=-80","")
diagramObj.ElementID = frame.ElementID
diagramobj.Update()
由於這EA,爲y軸的座標是朝向從上方陰性(L,R,T, b代表,猜測)。 EA會將框架擴展到指定尺寸以上的最小值。
爲了查看結果,您需要關閉/打開總覽圖。我會把這個作爲鍛鍊留給你:-)