Skip to main content

Get derived classes

Get derived classes​

You can get directly derived classes by using the GetSubClasses method of the IClass object.

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

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

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

//Get derived classes
IClassCollection subClasses = cls.GetSubClasses();
foreach (var subClass in subClasses)
{
//Print the class name
c.App.Output.WriteLine("sample", $"SubClass: {subClass.DisplayName}");
}
}

Get all derived classes​

You can get all derived classes, including the derived classes of derived classes, by using the GetAllSubClasses method of the IClass object.

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

//Get the root model base class
IClass cls = metamodels.GetClass("RootModelBase");

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

//Get all derived classes
IClassCollection subClasses = cls.GetAllSubClasses();
foreach (var subClass in subClasses)
{
//Print the class name
c.App.Output.WriteLine("sample", $"SuperClass: {subClass.DisplayName}");
}
}