ArcGIS Pro 3.4 API Reference Guide
ArcGIS.Core.Data.DDL.Knowledge Namespace / KnowledgeGraphPropertyDescription Class
Members Example

In This Topic
    KnowledgeGraphPropertyDescription Class
    In This Topic
    Represents a mechanism to create a ArcGIS.Core.Data.Knowledge.KnowledgeGraphProperty.
    Object Model
    KnowledgeGraphPropertyDescription ClassKnowledgeGraphPropertyDescription ClassKnowledgeGraphPropertyDescription ClassDomainDescription Class
    Syntax
    public sealed class KnowledgeGraphPropertyDescription : ArcGIS.Core.Data.DDL.FieldDescription 
    Public NotInheritable Class KnowledgeGraphPropertyDescription 
       Inherits ArcGIS.Core.Data.DDL.FieldDescription
    Example
    Create Entity and Relationship Types with SchemaBuilder
    await QueuedTask.Run(() =>
    {
      using (var kg = GetKnowledgeGraph())
      {
        if (kg == null)
          return;
    
        var entity_name = "PhoneCall";
        var relate_name = "WhoCalledWho";
    
        //Entity Fields
        var descs1 =
            new List<KnowledgeGraphPropertyDescription>();
        descs1.Add(
          new KnowledgeGraphPropertyDescription("PhoneOwner", FieldType.String));
        descs1.Add(
          new KnowledgeGraphPropertyDescription("PhoneNumber", FieldType.String));
        descs1.Add(
          new KnowledgeGraphPropertyDescription("LocationID", FieldType.BigInteger));
        descs1.Add(
          new KnowledgeGraphPropertyDescription("DateAndTime", FieldType.Date));
    
        //Relate Fields
        var descs2 =
            new List<KnowledgeGraphPropertyDescription>();
        descs2.Add(
          new KnowledgeGraphPropertyDescription("Foo", FieldType.String));
        descs2.Add(
          new KnowledgeGraphPropertyDescription("Bar", FieldType.String));
    
    
        var includeShape = true;//change to false to omit the shape column
        var hasZ = false;
        var hasM = false;
    
        KnowledgeGraphEntityTypeDescription entityDesc = null;
        KnowledgeGraphRelationshipTypeDescription relateDesc = null;
        if (includeShape)
        {
          var sr = kg.GetSpatialReference();
          var shp_desc = new ShapeDescription(GeometryType.Point, sr)
          {
            HasM = hasM,
            HasZ = hasZ
          };
          entityDesc = new KnowledgeGraphEntityTypeDescription(
            entity_name, descs1, shp_desc);
          relateDesc = new KnowledgeGraphRelationshipTypeDescription(
            relate_name, descs2, shp_desc);
        }
        else
        {
          entityDesc = new KnowledgeGraphEntityTypeDescription(
            entity_name, descs1);
          relateDesc = new KnowledgeGraphRelationshipTypeDescription(
            relate_name, descs2);
        }
        //Run the schema builder
        try
        {
          SchemaBuilder sb = new(kg);
          sb.Create(entityDesc);
          sb.Create(relateDesc);
          //Use the KnowledgeGraph extension method 'ApplySchemaEdits(...)'
          //to refresh the Pro UI
          if (!kg.ApplySchemaEdits(sb))
          {
            var err_msg = string.Join(",", sb.ErrorMessages.ToArray());
            System.Diagnostics.Debug.WriteLine($"Entity/Relate Create error: {err_msg}");
          }
        }
        catch (Exception ex)
        {
          System.Diagnostics.Debug.WriteLine(ex.ToString());
        }
      }
    });
    
    Inheritance Hierarchy

    System.Object
       ArcGIS.Core.Data.DDL.Description
          ArcGIS.Core.Data.DDL.FieldDescription
             ArcGIS.Core.Data.DDL.Knowledge.KnowledgeGraphPropertyDescription

    Requirements

    Target Platforms: Windows 11, Windows 10

    ArcGIS Pro version: 3.4 or higher.
    See Also