ArcGIS Pro 3.4 API Reference Guide
ArcGIS.Core.Data.Knowledge Namespace / KnowledgeGraphDataModel Class / GetEntityTypes Method
Example Version

GetEntityTypes Method
Gets a dictionary, with the keys being the names of the entity types in the data model, and the values being objects containing information about each entity type. This method must be called on the MCT. Use QueuedTask.Run.
Syntax
Exceptions
ExceptionDescription
This method or property must be called within the lambda passed to QueuedTask.Run.
Example
Get KnowledgeGraph Entity Types
QueuedTask.Run(() =>
{
  //Create a connection properties
  var kg_props =
      new KnowledgeGraphConnectionProperties(new Uri(url));
  using (var kg = new KnowledgeGraph(kg_props))
  {
    //Get the KnowledgeGraph Data Model
    using (var kg_dm = kg.GetDataModel())
    {
      var dict_types = kg_dm.GetEntityTypes();

      foreach (var kvp in dict_types)
      {
        var entity_type = kvp.Value;
        var role = entity_type.GetRole();
        //note "name" will be the same name as the corresponding
        //feature class or table in the KG's relational gdb model
        var name = entity_type.GetName();
        var alias = entity_type.GetAliasName();
        var objectIDPropertyName = entity_type.GetObjectIDPropertyName();
        //etc

      }

    }
  }
});
Get All KnowledgeGraph Graph Types
QueuedTask.Run(() =>
{
  //Create a connection properties
  var kg_props =
      new KnowledgeGraphConnectionProperties(new Uri(url));
  using (var kg = new KnowledgeGraph(kg_props))
  {
    //Get the KnowledgeGraph Data Model
    using (var kg_datamodel = kg.GetDataModel())
    {
      var entities = kg_datamodel.GetEntityTypes();
      var relationships = kg_datamodel.GetRelationshipTypes();
      var provenance = kg_datamodel.GetMetaEntityTypes();

      var all_graph_types = new List<KnowledgeGraphNamedObjectType>();
      all_graph_types.AddRange(entities.Values);
      all_graph_types.AddRange(relationships.Values);
      all_graph_types.AddRange(provenance.Values);

      System.Diagnostics.Debug.WriteLine("\r\nGraph Types");

      int c = 0;
      foreach (var graph_type in all_graph_types)
      {
        var type_name = graph_type.GetName();
        var role = graph_type.GetRole().ToString();

        //equivalent to:
        //var fields = featClassDef.GetFields().Select(f => f.Name).ToList();
        //var field_names = string.Join(",", fields);
        var props = graph_type.GetProperties().Select(p => p.Name).ToList();
        var prop_names = string.Join(",", props);

        System.Diagnostics.Debug.WriteLine($"[{c++}]: " +
            $"{type_name}, {role}, {prop_names}");
      }
    }
  }
});
Requirements

Target Platforms: Windows 11, Windows 10

ArcGIS Pro version: 3.2 or higher.
See Also