I have a contour generated from SRTM,   
![enter image description here][1]


How to fill the space between that contour with polygon (for all part) but it generates field in attribute table automaticaly, example in image above between contour 6 and 7 then the polygon generated should have custom field "nilai" with value "6-7" in attribute table.  

I've tried polyline to polygon but it's not working I should enter the value of polygon manually, there are so many to be edited one by one.  

**1st Method Using Spatial Analyst License (you can zoom in youre browser using "ctrl and +")**  

 1. Created Polygon (per 1m for 1m - 30m using feature to polygon tool) from contour created from dtm using **contour list** tool. https://i.sstatic.net/OdBXL.png
![enter image description here][2]  
 2. This is my DTM raster https://i.sstatic.net/mez5C.png
![enter image description here][3]
 3. Creating Zonal using **Zonal Statistic as Table** tool https://i.sstatic.net/ieJlz.png
![enter image description here][4]
 4. Zonal result attribute table https://i.sstatic.net/8w8iG.png
![enter image description here][5]
 5. Join polygon with zonal result https://i.sstatic.net/LDhA6.png
![enter image description here][6]
 6. Attribute Table of joined result https://i.sstatic.net/b8Ve5.png
![enter image description here][7]
 7. Checking the result after i **round** it, from that result maximum and minimum value are not match with the contour line https://i.sstatic.net/94Gdb.png
![enter image description here][8]

**2nd Method Using Spatial Analyst License**
I use this script provide by Michael

        >>> import sys, os, arcpy
    
    InPolygons = sys.argv[1]
    NearContour = sys.argv[2]
    OutPolygons = sys.argv[3]
    
    ElevationFieldName = "contour" # change this to match your field name
    
    InFolder = os.path.dirname(InPolygons) # the folder the input is in
    Working = InFolder + "\\Working.gdb"
    WorkingContour = Working+"\\Contour"
    WorkingPoly = Working+"\\Poly"
    
    arcpy.CreateFileGDB_management(InFolder,"Working.gdb") # create a working space
    arcpy.AddMessage("Copy 1")
    arcpy.CopyFeatures_management(NearContour,WorkingContour) # need to do this to take charge of names
    arcpy.AddMessage("Copy 2")
    arcpy.CopyFeatures_management(InPolygons,WorkingPoly) 
    
    # remove 'bad' edges, tagged with elevation = -9999 to show they are a boundary
    arcpy.MakeFeatureLayer_management(WorkingContour,"Remove",ElevationFieldName + " = -9999")
    arcpy.DeleteFeatures_management("Remove")
    arcpy.Delete_management("Remove") # relax, it's just removing the layer, just to keep it clean
    
    # Create a near table
    arcpy.AddMessage("Near table")
    arcpy.GenerateNearTable_analysis(WorkingPoly,WorkingContour,Working+"\\NearTable","0",closest="ALL")
    arcpy.AddField_management(Working+"\\NearTable","Elev","DOUBLE")
    
    try:
        arcpy.AddIndex_management(Working+"\\NearTable","NEAR_FID","NEAR_FID")
    except:
        arcpy.AddWarning("Unable to index")
    
    # join and copy elevations
    arcpy.AddMessage("Join & calc")
    arcpy.MakeTableView_management(Working+"\\NearTable","View")
    arcpy.AddJoin_management("View","NEAR_FID",WorkingContour,"OBJECTID")
    arcpy.CalculateField_management("View","NearTable.Elev","!Contour."+ElevationFieldName+"!","PYTHON")
    arcpy.Delete_management("View") # relax, it's just removing the table view, just to keep it clean
    
    # remove join and summary statistics
    arcpy.AddMessage("Make stats")
    #arcpy.RemoveJoin_management("View")
    arcpy.Statistics_analysis(Working+"\\NearTable",Working+"\\NearStats",[["Elev","MIN"],["Elev","Max"]],"IN_FID")
    
    # copy the min and max to the working contours
    arcpy.AddMessage("Copy min/max")
    arcpy.AddField_management(WorkingPoly,"MinElev","DOUBLE")
    arcpy.AddField_management(WorkingPoly,"MaxElev","DOUBLE")
    arcpy.MakeFeatureLayer_management(WorkingPoly,"Layer")
    arcpy.AddJoin_management("Layer","OBJECTID",Working+"\\NearStats","IN_FID")
    arcpy.CalculateField_management("Layer","Poly.MinElev","!NearStats.Min_Elev!","PYTHON")
    arcpy.CalculateField_management("Layer","Poly.MaxElev","!NearStats.Max_Elev!","PYTHON")
    arcpy.RemoveJoin_management("Layer")
    arcpy.Delete_management("Layer") # relax, it's just removing the layer, just to keep it clean
    
    # check for field
    arcpy.AddMessage("Checking for field")
    Fields = arcpy.ListFields(WorkingPoly,"nilai")
    if not Fields:
        arcpy.AddMessage("-Adding field")
        arcpy.AddField_management(WorkingPoly,"nilai","TEXT",field_length="10")
    
    # format the field with the min and max,
    # this could be done with a field calculation
    # but in this case I want a special case for isolations
    arcpy.AddMessage("Cursoring")
    with arcpy.da.UpdateCursor(WorkingPoly,("nilai","MinElev","MaxElev")) as UpCur:
        for Feat in UpCur:
            if (Feat[1]==Feat[2]):
                # values are the same = an isolation
                Feat[0] = str(int(Feat[1]))
            else:
                Feat[0] = "%d - %d" % (Feat[1],Feat[2])
            UpCur.updateRow(Feat)
    
    arcpy.AddMessage("Copy out")
    arcpy.CopyFeatures_management(WorkingPoly,OutPolygons) 

  
*Processing :*
![enter image description here][9]

*Result* https://i.sstatic.net/jF21X.png
![enter image description here][10]


My Polygon and attribute table are shown in the printscreen. Please help, any sugestion using python or else. Thanks.


  [1]: https://i.sstatic.net/CpUeX.png
  [2]: https://i.sstatic.net/OdBXL.png
  [3]: https://i.sstatic.net/mez5C.png
  [4]: https://i.sstatic.net/ieJlz.png
  [5]: https://i.sstatic.net/8w8iG.png
  [6]: https://i.sstatic.net/LDhA6.png
  [7]: https://i.sstatic.net/b8Ve5.png
  [8]: https://i.sstatic.net/94Gdb.png
  [9]: https://i.sstatic.net/TsKNi.png
  [10]: https://i.sstatic.net/1SA9D.png