ArcGIS Pro 3.4 API Reference Guide
ArcGIS.Core.Data Namespace / TableDefinition Class / GetSubtypes Method
Example Version

GetSubtypes Method
Gets a IReadOnlyList of the table's subtype codes. This method must be called on the MCT. Use QueuedTask.Run.
Syntax
public IReadOnlyList<Subtype> GetSubtypes()

Return Value

A IReadOnlyList of the table's subtype codes.
Exceptions
ExceptionDescription
The definition does not support this operation (e.g., the table is a shapefile).
A geodatabase-related exception has occurred.
Example
Get domain string from a field
public string GetDomainStringFromField(Row row, Field field)
{
    // Get the table and table definition from the Row
    using (Table table = row.GetTable())
    using (TableDefinition tableDefinition = table.GetDefinition())
    {
        // Get name of subtype field
        string subtypeFieldName = tableDefinition.GetSubtypeField();

        // Get subtype, if any
        Subtype subtype = null;

        if (subtypeFieldName.Length != 0)
        {
            // Get value of subtype field for this row
            object varSubtypeCode = row[subtypeFieldName];
            long subtypeCode = (long)varSubtypeCode;

            // Get subtype for this row
            subtype = tableDefinition.GetSubtypes().First(x => x.GetCode() == subtypeCode);
        }

        // Get the coded value domain for this field
        CodedValueDomain domain = field.GetDomain(subtype) as CodedValueDomain;

        // Return the text string for this field
        if (domain != null)
        {
            return domain.GetName(row[field.Name]);
        }
        else
        {
            return row[field.Name].ToString();
        }
    }
}
Requirements

Target Platforms: Windows 11, Windows 10

ArcGIS Pro version: 3 or higher.
See Also