Как получить объект диаграммы EA.Element

У меня есть элемент EA. Как я могу получить объект Diagram или идентификатор Diagram для родительского элемента? Я создаю элемент EA через табличную форму. Я хочу программно добавить этот элемент в диаграмму родительского элемента. Родительский элемент уже добавлен к диаграмме.

Как я могу получить эту родительскую диаграмму?

1 ответ

Вы не можете легально разместить один и тот же элемент дважды на одной диаграмме. Автоматизация все еще (я полагаю) позволяет это делать, но имеет странные побочные эффекты, поэтому вам не следует пытаться это делать.

Если по какой-либо причине вы хотите это сделать, вам нужно найти саму диаграмму. Поскольку элемент может находиться в нескольких диаграммах, вы должны найти соответствующую диаграмму или разобраться со всеми диаграммами, на которых он находится. Чтобы найти их, вы можете выполнить следующее:

Repository.SQLquery("SELECT do.diagram_id FROM t_diagramobjects AS do INNER JOIN t_object ON do.Object_ID = t_object.Object_ID WHERE t_object.ea_guid = '{B979A0E9-17CB-4ed2-ADAB-D6FB3BE10A2B}'")

Просто замените GUID примера на ваш объект. В ответ вы получаете строку XML, в которой перечислены все идентификаторы диаграмм, в которых используется элемент. Этот запрос просматривает все объекты диаграммы, где используется ваш элемент, и возвращает идентификатор диаграммы соответствующей диаграммы.

Теперь вы можете делать любое зло, которое хотите, с этими диаграммами.

Ну, честно говоря, есть законный способ иметь элемент дважды на диаграмме. Это с помощью виртуального соединителя. Пока что я не использовал это (ни вручную, ни по автоматизации), за исключением короткого ручного теста. Я могу посмотреть, если вам это нужно.

Другие вопросы по тегам