Добавление дополнительного базового класса в блок - PullRequest
0 голосов
/ 15 мая 2018

Я пытаюсь добавить существующий блок в качестве базового класса в другой блок. (SysML 1.4)

После завершения моделирования я хочу выделить блоки на диаграмме и добавить такие атрибуты, как part-nr и supplier. Мне показалось, что это самый простой способ сделать это по наследству.

Я работаю с C # и Interop.EA.dll, чтобы иметь лучшую отладочную информацию, чем со скриптом.

Этот код работает, но он не добавляет базовый класс.

EA.Repository m_Repository = Helpers.EAHelper.ActiveModel;
EA.Collection myCollection = m_Repository.GetCurrentDiagram().SelectedObjects;
foreach(object myObject in myCollection)
{
    EA.DiagramObject myDiagramObject = (EA.DiagramObject)myObject;
    EA.Element myElement = m_Repository.GetElementByID(myDiagramObject.ElementID);
    EA.Element Class2Add = Helpers.EAHelper.BaugruppeClass;
    EA.Element newBaseClass = myElement.BaseClasses.AddNew(Class2Add.ElementID.ToString(), Class2Add.Type.ToString());
    if (!newBaseClass.Update())
         System.Windows.MessageBox.Show("ups");
    myElement.BaseClasses.Refresh();
    int count = myElement.BaseClasses.Count;
    myElement.Update();
}

Есть мысли, что я делаю не так?

1 Ответ

0 голосов
/ 15 мая 2018

Нельзя использовать коллекцию BaseClasses для добавления базового класса.

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

...