Skip to main content

Get the inherited class

Get the directly inherited class

You can get the directly inherited class by using the SuperClasses property of the IClass object.

public void GetSuperClasses(ICommandContext c, ICommandParams p) 
{
//Get metamodels
IMetamodels metamodels = c.App.Workspace.CurrentProject.Profile.Metamodels;

//Get the class of "Actor"
IClass cls = metamodels.GetClass("Actor");

//Print the class name
c.App.Output.WriteLine("sample", $"Class: {cls.DisplayName}");

//Get the inherited class
IClassCollection superClasses = cls.SuperClasses;
foreach (var superClass in superClasses)
{
//Print the class name
c.App.Output.WriteLine("sample", $"SuperClass: {superClass.DisplayName}");
}
}

Get all inherited classes

You can get all inherited classes, including the inheritors of the inherited class, by using the GetAllSuperClasses method of the IClass object.

public void GetAllSuperClasses(ICommandContext c, ICommandParams p) 
{
//Get metamodels
IMetamodels metamodels = c.App.Workspace.CurrentProject.Profile.Metamodels;

//Get the class of "Actor"
IClass cls = metamodels.GetClass("Actor");

//Print the class name
c.App.Output.WriteLine("sample", $"Class: {cls.DisplayName}");

//Get all inherited classes
IClassCollection superClasses = cls.GetAllSuperClasses();
foreach (var superClass in superClasses)
{
//Print the class name
c.App.Output.WriteLine("sample", $"SuperClass: {superClass.DisplayName}");
}
}