<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: What is the code that add field to layer and does an operation? in ArcObjects SDK Questions</title>
    <link>https://community.esri.com/t5/arcobjects-sdk-questions/what-is-the-code-that-add-field-to-layer-and-does/m-p/167283#M4336</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi Jamal,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm no expert, but I would think this could be done much easier in a python script tool; partly because I have the code in front of me... &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I've removed all the try/excepts, but it would look something like this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;import arcpy&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;fc = arcpy.GetParameterAsText(0)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #this would come from a input box (the only one in the tool)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;if len(arcpy.ListFields(fc, "aFieldName")) &amp;lt; 1:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #check if your new field exists otherwise create it&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddField_management(fc, "aFieldName", "DOUBLE")&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;rows=arcpy.UpdateCursor(fc)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;for row in rows:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row.aFieldName = row.Math / row.Pupil #whatever calculation you need to do&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;rows.updateRow(row)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;del row&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;del rows&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Now in vb... which I don't have the code for, it would look something like this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;'i dont show var declarations in the first init step here&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;'load map, layer, etc, my 'm_application' is passed to my form_init function, so I start with getting the map doc from this&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;pMxDoc = m_application.Document&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;pMap = pMxDoc.FocusMap&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;pLayer = pMxDoc.SelectedLayer&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;'once you have the FC loaded (pFC) you can access fields for selected records by:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pFc = pLayer.FeatureClass&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;pFC = pLayer.FeatureClass&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pFSel As IFeatureSelection&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;pFSel = pLayer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pSelSet As ISelectionSet&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;pSelSet = pFSel.SelectionSet&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;pSelSet.Search(Nothing, False, pFCur)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Now you have a pFCur which is a cursor of all selected features&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;You can access each by a for loop using pFeat = pFCur.NextFeature (declared as Dim pFeat As IFeatureCursor)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;You change individual values by finding the index for a field like this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim aNewFieldIndex As Integer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;aNewFieldIndex = pFC.FindField("aNewField")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;and change values by the index, like this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;pFeat.Value(aNewFieldIndex) = "1" (or a variable from a calculation from other fields)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Like I said I would use the python option, and you can throw it into a batch grid and drag FCs from ArcCatalogue, without even opening the data.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Cheers,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Tom&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 03 Dec 2010 16:59:13 GMT</pubDate>
    <dc:creator>TomGiles</dc:creator>
    <dc:date>2010-12-03T16:59:13Z</dc:date>
    <item>
      <title>What is the code that add field to layer and does an operation?</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/what-is-the-code-that-add-field-to-layer-and-does/m-p/167282#M4335</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;What is the code that add field to layer and does an operation&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Please, see the attached image that shows my question&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;When I press the button in the form, I need to add field to the layer ???School??? and to divide the field maths on pupils&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;What is the code?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank you&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 30 Nov 2010 22:48:27 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/what-is-the-code-that-add-field-to-layer-and-does/m-p/167282#M4335</guid>
      <dc:creator>JamalNUMAN</dc:creator>
      <dc:date>2010-11-30T22:48:27Z</dc:date>
    </item>
    <item>
      <title>Re: What is the code that add field to layer and does an operation?</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/what-is-the-code-that-add-field-to-layer-and-does/m-p/167283#M4336</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi Jamal,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm no expert, but I would think this could be done much easier in a python script tool; partly because I have the code in front of me... &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I've removed all the try/excepts, but it would look something like this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;import arcpy&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;fc = arcpy.GetParameterAsText(0)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #this would come from a input box (the only one in the tool)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;if len(arcpy.ListFields(fc, "aFieldName")) &amp;lt; 1:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #check if your new field exists otherwise create it&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddField_management(fc, "aFieldName", "DOUBLE")&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;rows=arcpy.UpdateCursor(fc)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;for row in rows:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row.aFieldName = row.Math / row.Pupil #whatever calculation you need to do&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;rows.updateRow(row)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;del row&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;del rows&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Now in vb... which I don't have the code for, it would look something like this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;'i dont show var declarations in the first init step here&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;'load map, layer, etc, my 'm_application' is passed to my form_init function, so I start with getting the map doc from this&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;pMxDoc = m_application.Document&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;pMap = pMxDoc.FocusMap&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;pLayer = pMxDoc.SelectedLayer&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;'once you have the FC loaded (pFC) you can access fields for selected records by:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pFc = pLayer.FeatureClass&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;pFC = pLayer.FeatureClass&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pFSel As IFeatureSelection&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;pFSel = pLayer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pSelSet As ISelectionSet&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;pSelSet = pFSel.SelectionSet&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;pSelSet.Search(Nothing, False, pFCur)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Now you have a pFCur which is a cursor of all selected features&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;You can access each by a for loop using pFeat = pFCur.NextFeature (declared as Dim pFeat As IFeatureCursor)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;You change individual values by finding the index for a field like this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim aNewFieldIndex As Integer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;aNewFieldIndex = pFC.FindField("aNewField")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;and change values by the index, like this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;pFeat.Value(aNewFieldIndex) = "1" (or a variable from a calculation from other fields)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Like I said I would use the python option, and you can throw it into a batch grid and drag FCs from ArcCatalogue, without even opening the data.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Cheers,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Tom&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 03 Dec 2010 16:59:13 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/what-is-the-code-that-add-field-to-layer-and-does/m-p/167283#M4336</guid>
      <dc:creator>TomGiles</dc:creator>
      <dc:date>2010-12-03T16:59:13Z</dc:date>
    </item>
  </channel>
</rss>

