Check class inheritance relationships
Check whether a specified class is compatible
To check whether a specified class matches this class or is a derived class of this class, use the IsClassOf method of the IClass object.
public void IsClassOf(ICommandContext c, ICommandParams p)
{
    //Get the metamodels
    IMetamodels metamodels = c.App.Workspace.CurrentProject.Profile.Metamodels;
    //Get the class of "EntityBase"
    IClass entityClass = metamodels.GetClass("EntityBase");
    //Get the class of "Actor"
    IClass actorClass = metamodels.GetClass("Actor");
    //Get the class of "UseCase"
    IClass usecaseClass = metamodels.GetClass("UseCase");
    //Get the class of "RootModelBase"
    IClass rootModelBase = metamodels.GetClass("RootModelBase");
    //If the classes match, they are considered compatible
    c.App.Output.WriteLine("sample", $"Is EntityBase compatible with EntityBase: {entityClass.IsClassOf(entityClass)}");
    //If it is a derived class, it will be determined to be compatible.
    c.App.Output.WriteLine("sample", $"Is Actor compatible with EntityBase: {actorClass.IsClassOf(entityClass)}");
    //If it is neither of the above, it will be determined to be incompatible.
    c.App.Output.WriteLine("sample", $"Is Actor compatible with UseCase: {usecaseClass.IsClassOf(actorClass)}");
    //If you specify a derived class of a derived class, it will be determined to be compatible.
    c.App.Output.WriteLine("sample", $"Is UseCase compatible with RootModelBase: {usecaseClass.IsClassOf(rootModelBase)}");
}
Check if a class inherits from another class
To check if a specified class inherits from this class, use the IsSuperClass method of the IClass object.
public void IsSuperClass(ICommandContext c, ICommandParams p)
{
    //Get the metamodels
    IMetamodels metamodels = c.App.Workspace.CurrentProject.Profile.Metamodels;
    //Get the "EntityBase" class
    IClass entityClass = metamodels.GetClass("EntityBase");
    //Get the "Actor" class
    IClass actorClass = metamodels.GetClass("Actor");
    //Get the "UseCase" class
    IClass usecaseClass = metamodels.GetClass("UseCase");
    //Get the "RootModelBase" class
    IClass rootModelBase = metamodels.GetClass("RootModelBase");
    //If the class matches, it is determined that it is not an inherited class
    c.App.Output.WriteLine("sample", $"Is EntityBase an inherited class of EntityBase: {entityClass.IsSuperClass(entityClass)}");
    //Determined to be an inherited class
    c.App.Output.WriteLine("sample", $"Is EntityBase an inherited class of Actor: {entityClass.IsSuperClass(actorClass)}");
    c.App.Output.WriteLine("sample", $"Is RootModelBase an inherited class of UseCase: {rootModelBase.IsSuperClass(usecaseClass)}");
    //If the class is neither of the above, it is determined not to be an inherited class
    c.App.Output.WriteLine("sample", $"Is Actor an inherited class of UseCase: {actorClass.IsSuperClass(usecaseClass)}");
}