首页 > 解决方案 > 添加额外的基类来阻止

问题描述

我正在尝试将现有块作为基类添加到另一个块。(SysML 1.4)

建模完成后,我想在图中选择块并添加诸如零件编号和供应商之类的属性。对我来说,这似乎是通过继承来做到这一点的最简单方法。

我正在使用 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();
}

有什么想法我做错了吗?

标签: c#enterprise-architect

解决方案


您不能使用该BaseClasses集合来添加基类。

相反,您应该使用该Connectors集合添加一个Generalization类型的连接器,并将目标 id 设置为基类的 ID。


推荐阅读