AttributeIndexDescription Constructor(Index,TableDescription)
Creates a description object of the attribute
ArcGIS.Core.Data.Index.
Creating a table with index from scratch
public void CreatingTableWithIndex(SchemaBuilder schemaBuilder)
{
FieldDescription nameFieldDescription = FieldDescription.CreateStringField("Name", 50);
FieldDescription addressFieldDescription = FieldDescription.CreateStringField("Address", 200);
// Creating a feature class, 'Buildings' with two fields
TableDescription tableDescription = new TableDescription("Buildings", new List<FieldDescription>() { nameFieldDescription, addressFieldDescription });
// Enqueue DDL operation to create a table
TableToken tableToken = schemaBuilder.Create(tableDescription);
// Creating an attribute index named as 'Idx'
AttributeIndexDescription attributeIndexDescription = new AttributeIndexDescription("Idx", new TableDescription(tableToken),
new List<string> { nameFieldDescription.Name, addressFieldDescription.Name });
// Enqueue DDL operation to create an attribute index
schemaBuilder.Create(attributeIndexDescription);
// Execute build indexes operation
bool isBuildSuccess = schemaBuilder.Build();
}
Removing attribute index
public void RemoveAttributeIndex(SchemaBuilder schemaBuilder, FeatureClassDefinition featureClassDefinition, string attributeIndexName)
{
// Find a index to be removed
ArcGIS.Core.Data.Index indexToRemove = featureClassDefinition.GetIndexes().First(f => f.GetName().Equals(attributeIndexName));
// Index description of the index to be removed
AttributeIndexDescription indexDescriptionToRemove = new AttributeIndexDescription(indexToRemove, new TableDescription(featureClassDefinition));
// Enqueue the DDL operation to remove index
schemaBuilder.Delete(indexDescriptionToRemove);
// Execute the delete index operation
bool isDeleteIndexSuccess = schemaBuilder.Build();
}
Target Platforms: Windows 11, Windows 10
ArcGIS Pro version: 3.1 or higher.