2017-05-17 4 views
1

Hallo Es ist möglich tiefe Kopie ein Diagramm manuell in EA. Aber ist es möglich, es programmatisch von einem Add-In zu tun? somethind wieDeep Copy-Diagramme von Enterprise-Architekt

diagram.cop() oder diagram.duplicate()? .

Oder andere Möglichkeiten, ein komplettes Diagramm mit seinen Diagrammobjekten und Diagrammverknüpfungen zu kopieren.

Antwort

0

Es gibt keine echte Methode dafür. Sie müssen den "manuellen" mühsamen Weg verwenden, indem Sie DiagramObjects iterieren und im zweiten Diagramm neu erstellen.

Ich dachte EaPackage.Clone zu verwenden, um eine vollständige Kopie des Pakets zu erstellen, das das Diagramm und das Entfernen des nicht benötigten Zeugs enthält. Aber leider zeigt das Diagramm auf die geklonten Elemente.

Lösung

Jetzt, wo ich schreiben, dass: Sie das Diagramm in ein temporäres Paket bewegen kann. Jetzt benutzen Sie EaPackage.Clone und voila haben Sie eine exakte Kopie des Diagramms. Verschieben Sie das ursprüngliche Diagramm dorthin, wo es hergekommen ist, und löschen Sie das temporäre Paket.

+0

Dies funktioniert, wenn sich die Diagrammobjekte im selben Paket befinden. Wenn das Diagramm Objekte aus verschiedenen Paketen enthält, funktioniert es nicht. – Arshad

+0

Ich habe eine Lösung gefunden. Tricky wie immer im Umgang mit EA: -/Die Sparxianer sind nicht sehr clever, wenn es um ihre API geht. Es könnte Klonoperationen für alles geben. –