ArcGIS Pro 3.4 API Reference Guide
ArcGIS.Core.Data.DDL Namespace / RangeDomainDescription Class / RangeDomainDescription Constructor / RangeDomainDescription Constructor(String,FieldType,Object,Object)
The name of the description.
The ArcGIS.Core.Data.FieldType of the description.
The minimum value for the range.
The maximum value for the range.
Example

In This Topic
    RangeDomainDescription Constructor(String,FieldType,Object,Object)
    In This Topic
    Creates a description object of the ArcGIS.Core.Data.RangeDomain.
    Syntax
    public RangeDomainDescription( 
       string name,
       FieldType fieldType,
       object minValue,
       object maxValue
    )
    Public Function New( _
       ByVal name As String, _
       ByVal fieldType As FieldType, _
       ByVal minValue As Object, _
       ByVal maxValue As Object _
    )

    Parameters

    name
    The name of the description.
    fieldType
    The ArcGIS.Core.Data.FieldType of the description.
    minValue
    The minimum value for the range.
    maxValue
    The maximum value for the range.
    Exceptions
    ExceptionDescription

    name is invalid.

    -or-

    fieldType is invalid. The only valid types are ArcGIS.Core.Data.FieldType.SmallInteger, ArcGIS.Core.Data.FieldType.Integer, ArcGIS.Core.Data.FieldType.Single, ArcGIS.Core.Data.FieldType.Double, and ArcGIS.Core.Data.FieldType.Date.

    -or-

    The type of minValue and/or maxValue is invalid. The expected type for ArcGIS.Core.Data.FieldType.Date is System.DateTime. The expected type for ArcGIS.Core.Data.FieldType.SmallInteger and ArcGIS.Core.Data.FieldType.Integer is an integer. The expected type for ArcGIS.Core.Data.FieldType.Single and ArcGIS.Core.Data.FieldType.Double is a float.

    -or-

    minValue should be larger than maxValue.

    minValue and/or maxValue are null.
    The System.DateTime object is representing a year earlier than the year 100 AD.
    Example
    Creating a Range domain
    public void CreateRangeDomainSnippet(Geodatabase geodatabase)
    {
        // Create a range description with minimum value = 0 and maximum value = 1000
        RangeDomainDescription rangeDomainDescriptionMinMax = new RangeDomainDescription("RangeDomain_0_1000",
          FieldType.Integer, 0, 1000)
        { Description = "Domain value ranges from 0 to 1000" };
    
        SchemaBuilder schemaBuilder = new SchemaBuilder(geodatabase);
    
        // Create  a range domain 
        schemaBuilder.Create(rangeDomainDescriptionMinMax);
        schemaBuilder.Build();
    }
    Create Domain and Field Definition on KG Schemas with SchemaBuilder
        await QueuedTask.Run(() =>
        {
          using (var kg = GetKnowledgeGraph())
          {
            if (kg == null)
              return;
    
            var entity_name = "Fruit";
    
            //Domains are managed on the GDB objects...
            var fruit_fc = kg.OpenDataset<FeatureClass>(entity_name);
            var fruit_fc_def = fruit_fc.GetDefinition();
    
            var fieldFruitTypes = fruit_fc_def.GetFields()
                  .FirstOrDefault(f => f.Name == "FruitTypes");
            var fieldShelfLife = fruit_fc_def.GetFields()
                .FirstOrDefault(f => f.Name == "ShelfLife");
    
            //Create a coded value domain and add it to a new field
            var fruit_cvd_desc = new CodedValueDomainDescription(
              "FruitTypes", FieldType.String, 
              new SortedList<object, string> {
                              { "A", "Apple" },
                              { "B", "Banana" },
                              { "C", "Coconut" }
              })  {
                SplitPolicy = SplitPolicy.Duplicate,
                MergePolicy = MergePolicy.DefaultValue
            };
    
            //Create a Range Domain and add the domain to a new field description also
            var shelf_life_rd_desc = new RangeDomainDescription(
                                          "ShelfLife", FieldType.Integer, 0, 14);
    
            var sb = new SchemaBuilder(kg);
            sb.Create(fruit_cvd_desc);
            sb.Create(shelf_life_rd_desc);
    
            //Create the new field descriptions that will be associated with the
            //"new" FruitTypes coded value domain and the ShelfLife range domain
            var fruit_types_fld = new ArcGIS.Core.Data.DDL.FieldDescription(
                                          "FruitTypes", FieldType.String);
            fruit_types_fld.SetDomainDescription(fruit_cvd_desc);
    
            //ShelfLife will use the range domain
            var shelf_life_fld = new ArcGIS.Core.Data.DDL.FieldDescription(
    "ShelfLife", FieldType.Integer);
            shelf_life_fld.SetDomainDescription(shelf_life_rd_desc);
    
            //Add the descriptions to the list of field descriptions for the
            //fruit feature class - Modify schema needs _all_ fields to be included
            //in the schema, not just the new ones to be added.
            var fruit_fc_desc = new FeatureClassDescription(fruit_fc_def);
    
            var modified_fld_descs = new List<ArcGIS.Core.Data.DDL.FieldDescription>(
              fruit_fc_desc.FieldDescriptions);
    
            modified_fld_descs.Add(fruit_types_fld);
            modified_fld_descs.Add(shelf_life_fld);
    
            //Create a feature class description to modify the fruit entity
            //with the new fields and their associated domains
            var updated_fruit_fc =
              new FeatureClassDescription(entity_name, modified_fld_descs,
                                          fruit_fc_desc.ShapeDescription);
    
            //Add the modified fruit fc desc to the schema builder
            sb.Modify(updated_fruit_fc);
    
            //Run the schema builder
            try
            {
              if (!kg.ApplySchemaEdits(sb))
              {
                var err_msg = string.Join(",", sb.ErrorMessages.ToArray());
                System.Diagnostics.Debug.WriteLine($"Create domains error: {err_msg}");
              }
            }
            catch (Exception ex)
            {
              System.Diagnostics.Debug.WriteLine(ex.ToString());
            }
          }
        });
    
    Requirements

    Target Platforms: Windows 11, Windows 10

    ArcGIS Pro version: 3 or higher.
    See Also