<?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: Looping SearchCursor problem - 'point' object has no attribute 'next' in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/looping-searchcursor-problem-point-object-has-no/m-p/703596#M54468</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I saw where you used Describe to get the shapeType...apparently the 'test' was failing in your loop, so I wondered why and here is the faulty line:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;if infcType == "Polygon" or "Polyline"&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;It does not 'filter' points as it was intended, and if that is corrected then for points the 'else' statement in your loop will execute - the 1st line of the 'else' block includes getPart --- so I'd be interested to see if that executes (I don't think so):&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;inPt = inType.getPart()&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Anyway, start with this and change your 'if infcType' as shown (tested in IDLE):&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;&amp;gt;&amp;gt;&amp;gt; # testing your suspected faulty 'if' statement... &amp;gt;&amp;gt;&amp;gt; infcType = 'Point' &amp;gt;&amp;gt;&amp;gt; if infcType == "Polygon" or "Polyline":&amp;nbsp; print 'yes'&amp;nbsp;&amp;nbsp;&amp;nbsp; yes&amp;nbsp; &amp;gt;&amp;gt;&amp;gt; # the statement, print 'yes', executes -- so it is faulty allowing your point object to pass...&amp;nbsp; &amp;gt;&amp;gt;&amp;gt; # here it the corrected statement: &amp;gt;&amp;gt;&amp;gt; if infcType in ["Polygon", "Polyline"]:&amp;nbsp; print 'yes'&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt;&amp;gt;&amp;gt; # okay, that works -- the 'else' statement of your code should now run... &amp;gt;&amp;gt;&amp;gt; # although I think you will have another error with 'getPart' -- test and see.&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 18 Feb 2013 11:49:22 GMT</pubDate>
    <dc:creator>T__WayneWhitley</dc:creator>
    <dc:date>2013-02-18T11:49:22Z</dc:date>
    <item>
      <title>Looping SearchCursor problem - 'point' object has no attribute 'next'</title>
      <link>https://community.esri.com/t5/python-questions/looping-searchcursor-problem-point-object-has-no/m-p/703594#M54466</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm pretty new into Python and just do my first steps by modifying existing code to match my problem. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The aim is to change the X/Y coordinates of all features within a feature class / shapefile and save the transformed features in a new file. For this I've used a well working example code to switch X/Y coordinates of polygons and modified it:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;# Import system modules&amp;nbsp; import arcpy import sys import os import traceback import string&amp;nbsp;&amp;nbsp; def Transform_XY(infc, outfc, outfcSR):&amp;nbsp; # Transforms the X,Y coordinates of a feature class&amp;nbsp; # Check type of input feature class&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; infcType = arcpy.Describe(infc).shapeType&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if not arcpy.Exists(infc): &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AddMsgAndPrint("Input feature class not found! Script stops here.") &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if not arcpy.Exists(outfc): &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fpath, fname = os.path.split(outfc) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.CreateFeatureclass_management(fpath, fname, infcType, infc, "DISABLED", "DISABLED", outfcSR) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AddMsgAndPrint("New shapefile of type " + infcType + " created...") &amp;nbsp;&amp;nbsp;&amp;nbsp; else: &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AddMsgAndPrint("Output feature class already exists, please specify new location! Script stops here.") &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return&amp;nbsp; # Define cursors for input &amp;amp; output&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; readRows = arcpy.SearchCursor(infc) &amp;nbsp;&amp;nbsp;&amp;nbsp; readRow = readRows.next() &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; insRows = arcpy.InsertCursor(outfc) &amp;nbsp;&amp;nbsp;&amp;nbsp; insRow = insRows.next()&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; AddMsgAndPrint("Cursors Created...")&amp;nbsp; # Update progress info in dialog box&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.SetProgressor("default") &amp;nbsp;&amp;nbsp;&amp;nbsp; result = arcpy.GetCount_management(infc) &amp;nbsp;&amp;nbsp;&amp;nbsp; count = int(result.getOutput(0)) &amp;nbsp;&amp;nbsp;&amp;nbsp; fcount = 0&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; AddMsgAndPrint("Progressor Created...")&amp;nbsp; # Create temporary geometry objects&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; inPoly_Array = arcpy.Array() &amp;nbsp;&amp;nbsp;&amp;nbsp; inPt = arcpy.Point() &amp;nbsp;&amp;nbsp;&amp;nbsp; outPt = arcpy.Point() &amp;nbsp;&amp;nbsp;&amp;nbsp; fieldList =&amp;nbsp; arcpy.ListFields(infc) &amp;nbsp;&amp;nbsp;&amp;nbsp; for field in fieldList: &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AddMsgAndPrint(field.name)&amp;nbsp; # Transformation Parameters for affine transformation (example Helsinki-VVY -&amp;gt; ETRS-GK-25)&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; A = 6654650.14636 &amp;nbsp;&amp;nbsp;&amp;nbsp; B = 0.99998725362 &amp;nbsp;&amp;nbsp;&amp;nbsp; C = 0.00120230340 &amp;nbsp;&amp;nbsp;&amp;nbsp; D = 25447166.49457&amp;nbsp; # Loop through all features in the source feature class&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; shapefieldname = arcpy.gp.Describe(infc).ShapeFieldName&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; while readRow: &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fcount += 1 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; partnum = 0 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; inType = readRow.getValue(shapefieldname) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if infcType == "Polygon" or "Polyline": &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; partcount = inType.partCount &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Update progressor message&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; progressMessage = "Processing source feature: " + str(fcount) + " of " + str(count) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.SetProgressorLabel(progressMessage)&amp;nbsp; # Coordinate transformation&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if infcType == "Polygon" or "Polyline": &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while partnum &amp;lt; partcount: &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; part = inType.getPart(partnum) &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; inPt = part.next() &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; while inPt: &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; outPt.Y = A + (B * inPt.Y) - (C * inPt.X) &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; outPt.X = D + (C * inPt.Y) + (B * inPt.X) &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; inPoly_Array.append(outPt) &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; inPt = part.next() &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; outPoly = insRows.newRow() &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; outPoly.Shape = inPoly_Array &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; for field in fieldList: &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; if field.name != "FID" and field.name != "Shape": &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; fieldValue = readRow.getValue(field.name) &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; AddMsgAndPrint(field.name) &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; AddMsgAndPrint(fieldValue) &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; outPoly.setValue(field.name, fieldValue) &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; insRows.insertRow(outPoly) &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; partnum += 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; inPoly_Array.removeAll() &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else: &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; inPt = inType.getPart() &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outPt.Y = A + (B * inPt.Y) - (C * inPt.X) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outPt.X = D + (C * inPt.Y) + (B * inPt.X) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outFeature = insRows.newRow() &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outFeature.Shape = outPt &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; insRows.insertRow(outFeature) &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; readRow = readRows.next() &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return&amp;nbsp; def AddMsgAndPrint(message): &amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddMessage(message) &amp;nbsp;&amp;nbsp;&amp;nbsp; print message &amp;nbsp;&amp;nbsp;&amp;nbsp; return 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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Main Process Loop #+-------------------------------------------------------------------------------------+&amp;nbsp; # Create the Geoprocessor object and set the overwrite setting&amp;nbsp; arcpy.OverWriteOutput = True&amp;nbsp; try:&amp;nbsp; # # Input Parameters # # infc&amp;nbsp; -&amp;nbsp;&amp;nbsp; input feature class # outfc -&amp;nbsp;&amp;nbsp; output feature class # outfcSR -&amp;nbsp;&amp;nbsp; output feature class' spatial reference&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; infc = arcpy.GetParameterAsText(0) &amp;nbsp;&amp;nbsp;&amp;nbsp; outfc = arcpy.GetParameterAsText(1) &amp;nbsp;&amp;nbsp;&amp;nbsp; outfcSR = arcpy.GetParameterAsText(2)&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Transform_XY(infc, outfc, outfcSR)&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; AddMsgAndPrint("Transformation completed...") &amp;nbsp;&amp;nbsp; # Done&amp;nbsp; except arcpy.ExecuteError:&amp;nbsp; # Get the geoprocessing error messages&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; msgs = arcpy.GetMessage(0) &amp;nbsp;&amp;nbsp;&amp;nbsp; msgs += arcpy.GetMessages(2)&amp;nbsp; # Return geoprocessing error messages for use with a script tool&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddError(msgs)&amp;nbsp; # Print geoprocessing error messages for use in Python/PythonWin&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; print msgs&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; except:&amp;nbsp; # Get the traceback object &amp;nbsp;&amp;nbsp;&amp;nbsp; tb = sys.exc_info()[2] &amp;nbsp;&amp;nbsp;&amp;nbsp; tbinfo = traceback.format_tb(tb)[0]&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; # Concatenate error message&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; pymsg = tbinfo + "\n" + str(sys.exc_type)+ ": " + str(sys.exc_value)&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; # Return python error messages for use with a script tool &amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddError(pymsg)&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; # Print Python error messages for use in Python/PythonWin &amp;nbsp;&amp;nbsp;&amp;nbsp; print pymsg&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm running the code as a script form a custom toolbox, so i can specify the inputs manually. The code works fine for polygons and polylines, only as soon as i choose a shapefile with point features I'm getting the message: 'Point' object has no attribute 'next'.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;What am I doing wrong? Thanks in advance for any help!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Feb 2013 07:09:15 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/looping-searchcursor-problem-point-object-has-no/m-p/703594#M54466</guid>
      <dc:creator>EricWehner</dc:creator>
      <dc:date>2013-02-18T07:09:15Z</dc:date>
    </item>
    <item>
      <title>Re: Looping SearchCursor problem - 'point' object has no attribute 'next'</title>
      <link>https://community.esri.com/t5/python-questions/looping-searchcursor-problem-point-object-has-no/m-p/703595#M54467</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I suspect your problem is with this line:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;inPt = part.next()&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I don't know if you are using 10.1 but the docs for point geom do not return an array, just a point object - thus getpart and such makes no sense... so in this case you need to test for kind of geom before proceeding, and of course if point type then just get the get the object and proceed with that one object and go to the next line, etc.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://resources.arcgis.com/en/help/main/10.1/index.html#//018z0000006t000000"&gt;http://resources.arcgis.com/en/help/main/10.1/index.html#//018z0000006t000000&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Also, although 'next' is supported for your cursors coupled with the 'while row' statement, probably should consider a simple 'while row' statement......so, possibly, you can do away with having to iterate the rows yourself with 'next' and your code should be a little shorter.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;OOPS:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I meant consider the loop mechanism using 'for row in rows', not 'while row' (since you have to then explicitly define 'row' - it's implied with the 'for' statement).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Enjoy,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Wayne&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;ADDITIONAL INFO:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;For further info, maybe you're wondering why this continues to function with other geometry types?&amp;nbsp; It depends on the return - in the case of your script, you probably don't need to know the following, but could be useful if either you want to know more about the 'getPart' method or how to use other geometry objects.&amp;nbsp; For example, 'getPart' is supported with the PointGeometry object (not the same as the Point object) -- below is the very subtle doc statement in the Method Overview section of PointGeometry:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;PointGeometry (arcpy)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Desktop » Geoprocessing » ArcPy » ArcPy classes&lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="http://resources.arcgis.com/en/help/main/10.1/index.html#//018z00000039000000"&gt;http://resources.arcgis.com/en/help/main/10.1/index.html#//018z00000039000000&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;getPart ({index})&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Returns an array of point objects for a particular part of geometry or an array containing a number of arrays, one for each part.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Feb 2013 10:54:48 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/looping-searchcursor-problem-point-object-has-no/m-p/703595#M54467</guid>
      <dc:creator>T__WayneWhitley</dc:creator>
      <dc:date>2013-02-18T10:54:48Z</dc:date>
    </item>
    <item>
      <title>Re: Looping SearchCursor problem - 'point' object has no attribute 'next'</title>
      <link>https://community.esri.com/t5/python-questions/looping-searchcursor-problem-point-object-has-no/m-p/703596#M54468</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I saw where you used Describe to get the shapeType...apparently the 'test' was failing in your loop, so I wondered why and here is the faulty line:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;if infcType == "Polygon" or "Polyline"&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;It does not 'filter' points as it was intended, and if that is corrected then for points the 'else' statement in your loop will execute - the 1st line of the 'else' block includes getPart --- so I'd be interested to see if that executes (I don't think so):&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;inPt = inType.getPart()&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Anyway, start with this and change your 'if infcType' as shown (tested in IDLE):&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;&amp;gt;&amp;gt;&amp;gt; # testing your suspected faulty 'if' statement... &amp;gt;&amp;gt;&amp;gt; infcType = 'Point' &amp;gt;&amp;gt;&amp;gt; if infcType == "Polygon" or "Polyline":&amp;nbsp; print 'yes'&amp;nbsp;&amp;nbsp;&amp;nbsp; yes&amp;nbsp; &amp;gt;&amp;gt;&amp;gt; # the statement, print 'yes', executes -- so it is faulty allowing your point object to pass...&amp;nbsp; &amp;gt;&amp;gt;&amp;gt; # here it the corrected statement: &amp;gt;&amp;gt;&amp;gt; if infcType in ["Polygon", "Polyline"]:&amp;nbsp; print 'yes'&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt;&amp;gt;&amp;gt; # okay, that works -- the 'else' statement of your code should now run... &amp;gt;&amp;gt;&amp;gt; # although I think you will have another error with 'getPart' -- test and see.&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Feb 2013 11:49:22 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/looping-searchcursor-problem-point-object-has-no/m-p/703596#M54468</guid>
      <dc:creator>T__WayneWhitley</dc:creator>
      <dc:date>2013-02-18T11:49:22Z</dc:date>
    </item>
    <item>
      <title>Re: Looping SearchCursor problem - 'point' object has no attribute 'next'</title>
      <link>https://community.esri.com/t5/python-questions/looping-searchcursor-problem-point-object-has-no/m-p/703597#M54469</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;The comparison operation was the reason it crashed, I didn't know that it works different with strings... As soon as I changed it according to your example it works well!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;However, the getPart() method seems to work with the Point object, at least it doesn't produce any error. In fact, if I remove the line, the output seems to be only one point (out of &amp;gt;1000) and even with the wrong coordinates - weird.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;But I will have a deeper look into those object differences you mentioned!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for the quick help!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Feb 2013 12:29:15 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/looping-searchcursor-problem-point-object-has-no/m-p/703597#M54469</guid>
      <dc:creator>EricWehner</dc:creator>
      <dc:date>2013-02-18T12:29:15Z</dc:date>
    </item>
    <item>
      <title>Re: Looping SearchCursor problem - 'point' object has no attribute 'next'</title>
      <link>https://community.esri.com/t5/python-questions/looping-searchcursor-problem-point-object-has-no/m-p/703598#M54470</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Ahh, yes - I've always had 'issue' with getPart... that makes sense now, thank you.&amp;nbsp; Your code would have a problem with 'next' but not 'getPart' because of the even more subtle difference between 'getPart()' and 'getPart(partnum)'...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Since you are doing some calculation before 'reloading' the result into another fc, then you need a way to get at the object's 'internals', so getPart is your only ticket, so to speak.&amp;nbsp; The really interesting thing here is that since it is a Point object, the returned part is the only part, that is to say a &lt;/SPAN&gt;&lt;SPAN style="text-decoration:underline;"&gt;list&lt;/SPAN&gt;&lt;SPAN&gt; of parts is not returned.&amp;nbsp; Not sure if I have that straight yet!&amp;nbsp; Anyway, it is fascinating how objects are geared to work.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks and enjoy,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Wayne&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Feb 2013 12:58:26 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/looping-searchcursor-problem-point-object-has-no/m-p/703598#M54470</guid>
      <dc:creator>T__WayneWhitley</dc:creator>
      <dc:date>2013-02-18T12:58:26Z</dc:date>
    </item>
  </channel>
</rss>

