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

Create(TableDescription) Method
Enqueue the create operation on the object referred to by the TableDescription.
Syntax

Parameters

tableDescription
Indicates the ArcGIS.Core.Data.Table to be created.

Return Value

The TableToken for the ArcGIS.Core.Data.Table to be created.
Exceptions
ExceptionDescription
The total path length for the ArcGIS.Core.Data.Table to be created must be less than 252 characters.
tableDescription is null.
A Geodatabase must be set as the datasource for this operation
This method or property must be called within the lambda passed to QueuedTask.Run.
Example
Creating a Table
public void CreateTableSnippet(Geodatabase geodatabase, CodedValueDomain inspectionResultsDomain)
{
    // Create a PoleInspection table with the following fields
    //  GlobalID
    //  ObjectID
    //  InspectionDate (date)
    //  InspectionResults (pre-existing InspectionResults coded value domain)
    //  InspectionNotes (string)

    // This static helper routine creates a FieldDescription for a GlobalID field with default values
    FieldDescription globalIDFieldDescription = FieldDescription.CreateGlobalIDField();

    // This static helper routine creates a FieldDescription for an ObjectID field with default values
    FieldDescription objectIDFieldDescription = FieldDescription.CreateObjectIDField();

    // Create a FieldDescription for the InspectionDate field
    FieldDescription inspectionDateFieldDescription = new FieldDescription("InspectionDate", FieldType.Date)
    {
        AliasName = "Inspection Date"
    };

    // This static helper routine creates a FieldDescription for a Domain field (from a pre-existing domain)
    FieldDescription inspectionResultsFieldDescription = FieldDescription.CreateDomainField("InspectionResults", new CodedValueDomainDescription(inspectionResultsDomain));
    inspectionResultsFieldDescription.AliasName = "Inspection Results";

    // This static helper routine creates a FieldDescription for a string field
    FieldDescription inspectionNotesFieldDescription = FieldDescription.CreateStringField("InspectionNotes", 512);
    inspectionNotesFieldDescription.AliasName = "Inspection Notes";

    // Assemble a list of all of our field descriptions
    List<FieldDescription> fieldDescriptions = new List<FieldDescription>()
{ globalIDFieldDescription, objectIDFieldDescription, inspectionDateFieldDescription, inspectionResultsFieldDescription, inspectionNotesFieldDescription };

    // Create a TableDescription object to describe the table to create
    TableDescription tableDescription = new TableDescription("PoleInspection", fieldDescriptions);

    // Create a SchemaBuilder object
    SchemaBuilder schemaBuilder = new SchemaBuilder(geodatabase);

    // Add the creation of PoleInspection to our list of DDL tasks
    schemaBuilder.Create(tableDescription);

    // Execute the DDL
    bool success = schemaBuilder.Build();

    // Inspect error messages
    if (!success)
    {
        IReadOnlyList<string> errorMessages = schemaBuilder.ErrorMessages;
        //etc.
    }
}
Creating table with subtypes
public void CreateTableWithSubtypes(SchemaBuilder schemaBuilder)
{
    // Creating a 'Building' table with the subtype field 'BuildingType'
    FieldDescription buildingType = new FieldDescription("BuildingType", FieldType.Integer);
    FieldDescription buildingName = new FieldDescription("Name", FieldType.String);

    TableDescription tableDescription = new TableDescription("Building", new List<FieldDescription> { buildingName, buildingType });

    // Add the building type subtype with three subtypes - Business, Marketing, Security
    tableDescription.SubtypeFieldDescription = new SubtypeFieldDescription(buildingType.Name, new Dictionary<int, string> { { 1, "Business" }, { 2, "Marketing" }, { 3, "Security" } })
    {
        DefaultSubtypeCode = 3 // Assigning 'Security' building type as the default subtype
    };

    schemaBuilder.Create(tableDescription);
    schemaBuilder.Build();
}
Requirements

Target Platforms: Windows 11, Windows 10

ArcGIS Pro version: 3 or higher.
See Also