ArcGIS Pro 3.3 API Reference Guide
ArcGIS.Core.Data.DDL Namespace / RelationshipClassDescription Class / RelationshipClassDescription Constructor / RelationshipClassDescription Constructor(RelationshipClassDefinition)
The ArcGIS.Core.Data.RelationshipClass that the description object is representing.
Example

In This Topic
    RelationshipClassDescription Constructor(RelationshipClassDefinition)
    In This Topic
    Creates a description object of the ArcGIS.Core.Data.RelationshipClass.
    Syntax

    Parameters

    relationshipClassDefinition
    The ArcGIS.Core.Data.RelationshipClass that the description object is representing.
    Exceptions
    Example
    Creating relationship class
    public void CreateRelationshipWithRelationshipRules(SchemaBuilder schemaBuilder)
    {
      // Creating a 'BuildingType' table with two fields - BuildingType and BuildingTypeDescription
      FieldDescription buildingType = FieldDescription.CreateIntegerField("BuildingType");
      FieldDescription buildingTypeeDescription = FieldDescription.CreateStringField("BuildingTypeDescription", 100);
      TableDescription buildingTypeDescription = new TableDescription("BuildingType", new List<FieldDescription>() { buildingType, buildingTypeeDescription });
      TableToken buildingtypeToken = schemaBuilder.Create(buildingTypeDescription);
    
      // Creating a 'Building' feature class with three fields - BuildingId, Address, and BuildingType
      FieldDescription buildingId = FieldDescription.CreateIntegerField("BuildingId");
      FieldDescription buildingAddress = FieldDescription.CreateStringField("Address", 100);
      FieldDescription usageSubType = FieldDescription.CreateIntegerField("UsageSubtype");
      FeatureClassDescription featureClassDescription = new FeatureClassDescription("Building", new List<FieldDescription> { buildingId, buildingAddress, buildingType, usageSubType }, new ShapeDescription(GeometryType.Polygon, SpatialReferences.WGS84));
    
      // Set subtype details (optional)
      featureClassDescription.SubtypeFieldDescription = new SubtypeFieldDescription(usageSubType.Name, new Dictionary<int, string> { { 1, "Marketing" }, { 2, "Utility" } });
    
      FeatureClassToken buildingToken = schemaBuilder.Create(featureClassDescription);
    
      // Creating a 1:M relationship between the 'Building' feature class and 'BuildingType' table
      RelationshipClassDescription relationshipClassDescription = new RelationshipClassDescription("BuildingToBuildingType", new FeatureClassDescription(buildingToken), new TableDescription(buildingtypeToken),
        RelationshipCardinality.OneToMany, buildingType.Name, buildingType.Name)
      {
        RelationshipType = RelationshipType.Composite
      };
    
      // Adding relationship rules for the 'Marketing' subtype
      relationshipClassDescription.RelationshipRuleDescriptions.Add(new RelationshipRuleDescription(1, null));
    
      schemaBuilder.Create(relationshipClassDescription);
      schemaBuilder.Build();
    }
    Requirements

    Target Platforms: Windows 11, Windows 10

    ArcGIS Pro version: 3.1 or higher.
    See Also