I have a raster attribute table associated with an IMAGINE .img raster that I build and open with:

IGPUtilities utils = new GPUtilities();
IRasterDatasetEdit2 raster = (IRasterDatasetEdit2)

ITable vat = (raster as IRasterBandCollection).Item(0).AttributeTable;

I need to add new column to the table and populate with values. However, calling AddField on the table throws "The method or operation is not implemented" exception.

IFieldEdit field = new FieldClass();
field.Type_2 = esriFieldType::esriFieldTypeString;
field.Name_2 = "Name";
vat.AddField(field as IField);  // Throws

Is there a direct way how to modify the existing attribute table or do I have to create one on my own and assign it to the raster using IRasterDatasetEdit2::AlterAttributeTable()?

I'm using ArcObjects .NET SDK with ArcGIS 9.3.1.


Once again ArcMap behaves curiously: When I open the raster in ArcMap after my code failed to add the field, I can open the attribute table but the 'Add Field...' option is disabled. If I remove the raster and open it again, I can add fields from ArcMap and also my code works!

Everything works fine with GeoTiff images.

I do not think this is a locking issue since I'm releasing all COM instances (via System::Runtime::InteropServices::Marshal::ReleaseComObject())

  • 1
    Does arcmap allow you to manually add a field to an img based raster? Commented Aug 29, 2011 at 15:04
  • Only when I remove the raster my tool created and open it again. That suggests that something isn't quite finished (my code ends with exception but I make sure I'm releasing the underlying COM instances). Commented Aug 29, 2011 at 15:14
  • Did you try calling IDataLayer2.Disconnect then IDataLayer2.Connect ? Also, interactively, did you try killing your ArcSOCp.exe process? Maybe it has a lock on the raster. Commented Aug 29, 2011 at 16:29
  • @Kirk: Thanks. The result of my tool is not a layer, it is a newly created raster. After my tool finishes, only then I open it as a layer in ArcMap and have the 'Add Field...' option disabled. Removing and opening fixes the problem. This does not happen with GeoTIFF images so I can go around using those, I'm just being curious now why .img won't work normally :) If I understand right ArcSOCp.exe is related to ArcGIS10 background processing? I'm still using ArcGIS 9.3. Commented Aug 30, 2011 at 6:03
  • Did you try calling ReleaseInternals? Commented Aug 30, 2011 at 12:48

1 Answer 1


I am not an ArcObject users but basically it should not possible to add a field to a raster. Conceptually you can't, since a raster is a grid with one value in the cell. You can only clone the raster and change the value of each cell.

Hote it helps.


  • 1
    I'm not trying to add fields to the raster but to its attribute table (that is a normal table having one row for each qnique value in the raster). It works for GeoTIFF rasters but not for IMAGINE rasters. Commented Aug 29, 2011 at 13:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.