ArcGIS Pro 3.4 API Reference Guide
ArcGIS.Core.Data.DDL.Knowledge Namespace / KnowledgeGraphRelationshipTypeDescription Class / KnowledgeGraphRelationshipTypeDescription Constructor / KnowledgeGraphRelationshipTypeDescription Constructor(String,IEnumerable<KnowledgeGraphPropertyDescription>)
The name to use for the description object
The collection of properties for the description object
Example Version

KnowledgeGraphRelationshipTypeDescription Constructor(String,IEnumerable<KnowledgeGraphPropertyDescription>)
Construct a KnowledgeGraphRelationshipTypeDescription with the given name and collection of property descriptions. This method must be called on the MCT. Use QueuedTask.Run.
Syntax

Parameters

name
The name to use for the description object
propertyDescriptions
The collection of properties for the description object
Exceptions
ExceptionDescription
name is invalid
This method or property must be called within the lambda passed to QueuedTask.Run.
Remarks
The name will be used for a new relationship type if the description object is used for purposes of creation. Otherwise, it will be used to identify an existing relationship type if the description object is used for the purposes of modify or delete.
Note: An ObjectID and GlobalID property description will automatically be added to the description object within the ArcGIS.Core.Data.DDL.SchemaBuilder (if these property descriptions were not included in the input propertyDescriptions collection). The underlying origin and destination entity id fields present on all relationship types will also be automatically be added (if they are missing also).
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());
    }
  }
});
Requirements

Target Platforms: Windows 11, Windows 10

ArcGIS Pro version: 3.4 or higher.
See Also