ArcGIS Pro 3.3 API Reference Guide
ArcGIS.Core.Data.DDL Namespace / SchemaBuilder Class / Modify Method / Modify(TableDescription) Method
Indicates the ArcGIS.Core.Data.Table to be modified.
Example Version

    Modify(TableDescription) Method
    Enqueue the modify operation on the object referred to by the TableDescription.
    Syntax
    public void Modify( 
       TableDescription tableDescription
    )

    Parameters

    tableDescription
    Indicates the ArcGIS.Core.Data.Table to be modified.
    Exceptions
    ExceptionDescription
    The subtypes are invalid.
    tableDescription is null.
    Example
    Removing fields from a Table
    public void RemoveFieldTableSnippet(Geodatabase geodatabase)
    {
      // Removing all fields from 'Parcels' table except following 
      // Tax_Code
      // Parcel_Address
    
      // The table to remove fields
      string tableName = "Parcels";
    
      TableDefinition tableDefinition = geodatabase.GetDefinition<TableDefinition>(tableName);
      IReadOnlyList<Field> fields = tableDefinition.GetFields();
    
      // Existing fields from 'Parcels' table
      Field taxCodeField = fields.First(f => f.Name.Equals("Tax_Code"));
      Field parcelAddressField = fields.First(f => f.Name.Equals("Parcel_Address"));
    
      FieldDescription taxFieldDescription = new FieldDescription(taxCodeField);
      FieldDescription parcelAddressFieldDescription = new FieldDescription(parcelAddressField);
    
      // Fields to retain in modified table
      List<FieldDescription> fieldsToBeRetained = new List<FieldDescription>()
      {
        taxFieldDescription, parcelAddressFieldDescription
      };
    
      // New description of the 'Parcels' table with the 'Tax_Code' and 'Parcel_Address' fields
      TableDescription modifiedTableDescription = new TableDescription(tableName, fieldsToBeRetained);
    
      SchemaBuilder schemaBuilder = new SchemaBuilder(geodatabase);
    
      // Remove all fields except the 'Tax_Code' and 'Parcel_Address' fields
      schemaBuilder.Modify(modifiedTableDescription);
      schemaBuilder.Build();
    }
    Removing subtype field designation
    public void DeleteSubtypeField(SchemaBuilder schemaBuilder, FeatureClassDefinition featureClassDefinition)
    {
      FeatureClassDescription featureClassDescription = new FeatureClassDescription(featureClassDefinition);
    
      // Set subtype field to null to remove the subtype field designation 
      featureClassDescription.SubtypeFieldDescription = null;
    
      schemaBuilder.Modify(featureClassDescription);
      schemaBuilder.Build();
    }
    Modifying subtypes
    public void ModifySubtypes(SchemaBuilder schemaBuilder, TableDefinition tableDefinition)
    {
      TableDescription tableDescription = new TableDescription(tableDefinition);
    
      // Remove the first subtype from the table
      IReadOnlyList<Subtype> subtypes = tableDefinition.GetSubtypes();
      tableDescription.SubtypeFieldDescription.Subtypes.Remove(subtypes.First().GetCode());
    
      // Adding a new subtype, 'Utility', in the existing table
      tableDescription.SubtypeFieldDescription.Subtypes.Add(4, "Utility");
    
      // Assigning 'Utility' subtype as the default subtype
      tableDescription.SubtypeFieldDescription.DefaultSubtypeCode = 4;
    
      schemaBuilder.Modify(tableDescription);
      schemaBuilder.Build();
    }
    Requirements

    Target Platforms: Windows 11, Windows 10

    ArcGIS Pro version: 3 or higher.
    See Also