ArcGIS Pro 3.7 API Reference Guide
ArcGIS.Core.Data Namespace / Geodatabase Class / GetDefinitions<T> Method
The type of dataset definition.
Example

In This Topic
    GetDefinitions<T> Method (Geodatabase)
    In This Topic
    Gets an IReadOnlyList of specific Definition instances associated with each dataset of type T in the geodatabase. This method must be called on the MCT. Use QueuedTask.Run.
    Syntax
    Public Function GetDefinitions(Of T As Definition)() As IReadOnlyList(Of T)
    public IReadOnlyList<T> GetDefinitions<T>()
    where T: Definition

    Type Parameters

    T
    The type of dataset definition.

    Return Value

    A IReadOnlyList of specific Definition instances corresponding to type T.
    Exceptions
    ExceptionDescription
    No valid geodatabase has been opened prior to calling this operation or the DatasetType type is not supported.
    A geodatabase-related exception has occurred.
    Remarks
    Asking for TableDefinition will only return definitions for non-spatial tables (not feature classes), but asking for FeatureClassDefinition will return regular feature classes, as well as annotation and dimensioning feature classes.
    Example
    Obtaining List of Definitions from Geodatabase
    {
      await QueuedTask.Run(() =>
      {
        using (Geodatabase geodatabase = new Geodatabase(new DatabaseConnectionFile(new Uri("path\\to\\sde\\file\\sdefile.sde"))))
        {
          IReadOnlyList<FeatureClassDefinition> enterpriseDefinitions = geodatabase.GetDefinitions<FeatureClassDefinition>();
          IEnumerable<Definition> featureClassesHavingGlobalID = enterpriseDefinitions.Where(definition => definition.HasGlobalID());
    
          IReadOnlyList<FeatureDatasetDefinition> featureDatasetDefinitions = geodatabase.GetDefinitions<FeatureDatasetDefinition>();
          bool electionRelatedFeatureDatasets = featureDatasetDefinitions.Any(definition => definition.GetName().Contains("Election"));
    
          IReadOnlyList<AttributedRelationshipClassDefinition> attributedRelationshipClassDefinitions = geodatabase.GetDefinitions<AttributedRelationshipClassDefinition>();
    
          IReadOnlyList<RelationshipClassDefinition> relationshipClassDefinitions = geodatabase.GetDefinitions<RelationshipClassDefinition>();
        }
      });
    }
    Obtaining related Feature Classes from a Relationship Class
    {
      await QueuedTask.Run(() =>
      {
        using (Geodatabase geodatabase = new Geodatabase(new FileGeodatabaseConnectionPath(new Uri(@"C:\Data\LocalGovernment.gdb"))))
        {
          IReadOnlyList<RelationshipClassDefinition> relationshipClassDefinitions = geodatabase.GetDefinitions<RelationshipClassDefinition>();
    
          foreach (RelationshipClassDefinition relationshipClassDefinition in relationshipClassDefinitions)
          {
            IReadOnlyList<Definition> definitions = geodatabase.GetRelatedDefinitions(relationshipClassDefinition, DefinitionRelationshipType.DatasetsRelatedThrough);
    
            foreach (Definition definition in definitions)
            {
              Debug.WriteLine($"Feature class in the RelationshipClass is:{definition.GetName()}");
            }
          }
        }
      });
    }
    Requirements

    Target Platforms: Windows 11 Home, Pro, Enterprise (64 bit)

    ArcGIS Pro version: 3.0 or higher.
    See Also