添加额外的基类来阻止

时间:2018-05-15 15:14:00

标签: c# enterprise-architect

我尝试将现有Block作为Baseclass添加到另一个Block。 (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 :(得分:2)

您无法使用BaseClasses集合添加基类。

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