ArcGIS Pro 3.2 API Reference Guide
ArcGIS.Core.Data.DDL Namespace / SchemaBuilder Class / Modify Method / Modify(AttributedRelationshipClassDescription) Method
Indicates the ArcGIS.Core.Data.AttributedRelationshipClass to be modified.
Example

In This Topic
    Modify(AttributedRelationshipClassDescription) Method
    In This Topic
    Enqueue the modify operation on the object referred to by the AttributedRelationshipClassDescription.
    Syntax

    Parameters

    attributedRelationshipClassDescription
    Indicates the ArcGIS.Core.Data.AttributedRelationshipClass to be modified.
    Exceptions
    ExceptionDescription
    attributedRelationshipClassDescription has invalid relationship split policy, relationship rules, foreign keys,and/or intermediate fields.
    attributedRelationshipClassDescription is null.
    Memory ArcGIS.Core.Data.Geodatabase does not support attributed relationship classes.
    The relationship split policy is not supported.
    Example
    Add relationship rules to a relationship class
    public void ModifyRelationshipClass(SchemaBuilder schemaBuilder, AttributedRelationshipClassDefinition attributedRelationshipClassDefinition)
    {
      AttributedRelationshipClassDescription attributedRelationshipClassDescription = new AttributedRelationshipClassDescription(attributedRelationshipClassDefinition);
    
      // Update the relationship split policy
      attributedRelationshipClassDescription.RelationshipSplitPolicy = RelationshipSplitPolicy.UseDefault;
    
      // Add field in the intermediate table
      attributedRelationshipClassDescription.FieldDescriptions.Add(FieldDescription.CreateIntegerField("RelationshipStatus"));
    
      // Add relationship rules based on subtypes,if available
      // Assuming origin class has subtype with code 1
      attributedRelationshipClassDescription.RelationshipRuleDescriptions.Add(new RelationshipRuleDescription(1, null));
      
      // Enqueue modify operation
      schemaBuilder.Modify(attributedRelationshipClassDescription);
      
      // Execute modify DDL operation
      schemaBuilder.Build();
    }
    Modifying annotation labels and symbols
    public void ModifyAnnotationLabelAndSymbols(SchemaBuilder schemaBuilder, AnnotationFeatureClassDefinition annotationFeatureClassDefinition)
    {
      AnnotationFeatureClassDescription annotationFeatureClassDescription = new AnnotationFeatureClassDescription(annotationFeatureClassDefinition);
      IReadOnlyList<CIMLabelClass> labelClasses = annotationFeatureClassDescription.LabelClasses;
    
      // Adding a new annotation label class 
      List<CIMLabelClass> modifiedLabelClasses = new List<CIMLabelClass>(labelClasses);
      modifiedLabelClasses.Add(new CIMLabelClass()
      {
        Name = "RedSymbol",
        TextSymbol = new CIMSymbolReference
        {
          Symbol = new CIMTextSymbol()
          {
            Angle = 45,
            FontType = FontType.Type1,
            FontFamilyName = "Arial",
            FontEffects = FontEffects.Normal,
            HaloSize = 2.0,
    
            Symbol = new CIMPolygonSymbol { SymbolLayers = new CIMSymbolLayer[] { new CIMSolidFill { Color = CIMColor.CreateRGBColor(255, 0, 0) } }, UseRealWorldSymbolSizes = true }
          },
          MaxScale = 0,
          MinScale = 0,
          SymbolName = "TextSymbol-RED"
        },
      });
    
      // Adding a  new symbol
      annotationFeatureClassDescription.Symbols.Add(new CIMSymbolIdentifier()
      {
        ID = 1001,
        Name = "ID_10001",
        Symbol = new CIMTextSymbol()
        {
          Angle = 43,
          FontEffects = FontEffects.Subscript,
          FontType = FontType.TTOpenType,
          FontStyleName = "Regular",
          FontFamilyName = "Tahoma",
          TextCase = TextCase.Allcaps
        }
      });
    
      // Modify annotation feature class 
      AnnotationFeatureClassDescription modifiedAnnotationFeatureClassDescription = new AnnotationFeatureClassDescription(annotationFeatureClassDescription.Name, annotationFeatureClassDescription.FieldDescriptions, annotationFeatureClassDescription.ShapeDescription, annotationFeatureClassDescription.GeneralPlacementProperties, modifiedLabelClasses);
      
      // Enqueue modify
      schemaBuilder.Modify(modifiedAnnotationFeatureClassDescription);
      
      // DDL execute
      schemaBuilder.Build();
    
    }
    Requirements

    Target Platforms: Windows 11, Windows 10

    ArcGIS Pro version: 3.1 or higher.
    See Also