添加额外的基类块

Adding additional baseclass to block

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

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

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

有没有想过我做错了什么?

您不能使用 BaseClasses 集合添加基数class。

相反,您应该使用 Connectors 集合来添加类型为 Generalization 的连接器,并将目标 ID 设置为基础 class 的 ID .