<?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: cycling through vertices of lines in python (arcgisscripting) in Geoprocessing Questions</title>
    <link>https://community.esri.com/t5/geoprocessing-questions/cycling-through-vertices-of-lines-in-python/m-p/274281#M9470</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thanks for the reply Don, unfortunately it still isn't out putting the correct values (all are 1, the first item in the list)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Any other ideas? I've tried changing the indentation, tried different forms (i.e. altIndex=altIndex+1) but just cannot seem to get it work!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sun, 12 Sep 2010 22:31:19 GMT</pubDate>
    <dc:creator>TimBarnes</dc:creator>
    <dc:date>2010-09-12T22:31:19Z</dc:date>
    <item>
      <title>cycling through vertices of lines in python (arcgisscripting)</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/cycling-through-vertices-of-lines-in-python/m-p/274279#M9468</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi there- Im trying to write a script to convert polylines into XML text files for use in another program- Problem is, I can't get the script to iterate my vertex count. Other counts iterate OK (i.e. denseList), just not this one (altIndex)- It cycles through the correct number of vertices in the line, but the count doesn't increase.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Any ideas? (I've highlighted the relevant part of the script)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;# ---------------------------------------------------------------------------
....Header....

# Local variables...
inFC = gp.GetParameterAsText(0)

# Variables to extract information from attribute table
colSuppress = gp.GetParameterAsText(1)
colWidth = gp.GetParameterAsText (2)
colExtrusion = gp.GetParameterAsText(3)
colMaterial = gp.GetParameterAsText (4)
colVertices = gp.GetParameterAsText (5)
out = gp.getParameterAsText(6)

# XML variables needed for formatting
tab = ' '
tabTab = ' ' + ' '
tabTabTab = ' ' + ' ' + ' '
tabTabTabTab = ' ' + ' ' + ' ' + ' '

# List array variables
# List containing values to cycle through for scenery density. Set to the first item initially.
denseList = ['VERY_SPARSE','SPARSE','NORMAL','DENSE','VERY_DENSE']
denseIndex = 0

# Identify the geometry field
desc = gp.Describe(inFC)
shapefieldname = desc.ShapeFieldName

# Create and open output file
outFile = open(out, "w")
# Write XML header
outFile.write('&amp;lt;?xml version="1.0" encoding="iso-8859-1"?&amp;gt;'+ '\n')
outFile.write('&amp;lt;!--Created for VectorLandClass --&amp;gt;'+ '\n')
outFile.write(str('&amp;lt;FSData')+ "\n")
outFile.write(str(tab) + 'version="9.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"'+ '\n')
outFile.write(str(tab) + 'xsi:noNamespaceSchemaLocation="bglcomp.xsd"&amp;gt;'+ '\n')

# Create search cursor to search through line features in the input feature class
rows = gp.SearchCursor(inFC)
row = rows.Next()

# Create a
# Enter while loop for each feature/row
while row :
&amp;nbsp;&amp;nbsp;&amp;nbsp; # Create the geometry object 'feat'
&amp;nbsp;&amp;nbsp;&amp;nbsp; feat = row.GetValue(shapefieldname)
&amp;nbsp;&amp;nbsp;&amp;nbsp; # Extract row attributes from precalculated columns in the attribte table accessed via a searchcursor
&amp;nbsp;&amp;nbsp;&amp;nbsp; numVertices = row.GetValue(colVertices)
&amp;nbsp;&amp;nbsp;&amp;nbsp; suppress = row.GetValue(colSuppress)
&amp;nbsp;&amp;nbsp;&amp;nbsp; width = row.GetValue(colWidth)
&amp;nbsp;&amp;nbsp;&amp;nbsp; extru = row.GetValue(colExtrusion)
&amp;nbsp;&amp;nbsp;&amp;nbsp; material = row.GetValue(colMaterial)

&amp;nbsp;&amp;nbsp;&amp;nbsp; line = row.shape
&amp;nbsp;&amp;nbsp;&amp;nbsp; density = denseList[denseIndex]
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; # define variable firstPnt as the FirstPoint object of the line
&amp;nbsp;&amp;nbsp;&amp;nbsp; firstPnt = line.FirstPoint
&amp;nbsp;&amp;nbsp;&amp;nbsp; # define variable middlePnt as the Centroid object of the line
&amp;nbsp;&amp;nbsp;&amp;nbsp; middlePnt = line.Centroid
&amp;nbsp;&amp;nbsp;&amp;nbsp; # define variable lastPnt as the LastPoint object of the line
&amp;nbsp;&amp;nbsp;&amp;nbsp; lastPnt = line.LastPoint

&amp;nbsp;&amp;nbsp;&amp;nbsp; # Write the first part of the ExtrusionBridge XML tag
&amp;nbsp;&amp;nbsp;&amp;nbsp; outFile.write(str(tab)+ '&amp;lt;ExtrusionBridge' + '\n')
&amp;nbsp;&amp;nbsp;&amp;nbsp; outFile.write(str(tabTab) + 'instanceId="{00000000-0000-0000-0000-000000000000}"' + '\n')
&amp;nbsp;&amp;nbsp;&amp;nbsp; outFile.write(str(tabTab) + 'probability = "0.5"'+ '\n')
&amp;nbsp;&amp;nbsp;&amp;nbsp; outFile.write(str(tabTab) + 'suppressPlatform= "' + str(suppress)+ '"'+ '\n')
&amp;nbsp;&amp;nbsp;&amp;nbsp; outFile.write(str(tabTab) + 'imageComplexity= "'+ str(density) + '"' + '\n')
&amp;nbsp;&amp;nbsp;&amp;nbsp; outFile.write(str(tabTab) + 'roadWidth= "' + str(width) + '"' + '\n')
&amp;nbsp;&amp;nbsp;&amp;nbsp; outFile.write(str(tabTab) + 'extrusionProfile="'+ str(extru) + '"'+ '\n')
&amp;nbsp;&amp;nbsp;&amp;nbsp; outFile.write(str(tabTab) + 'materialSet="' + str(material) + '"&amp;gt;'+ '\n')

&amp;nbsp;&amp;nbsp;&amp;nbsp; # Write to the Altitude sample location tag
&amp;nbsp;&amp;nbsp;&amp;nbsp; #gp.AddMessage('&amp;lt;AltitudeSampleLocationList&amp;gt;')
&amp;nbsp;&amp;nbsp;&amp;nbsp; outFile.write(str(tabTab) +'&amp;lt;AltitudeSampleLocationList&amp;gt;'+ '\n')
&amp;nbsp;&amp;nbsp;&amp;nbsp; # Add a message giving a string of the first points coordinates. This is the altitude reference point 1
&amp;nbsp;&amp;nbsp;&amp;nbsp; #gp.AddMessage('&amp;lt;AltitudeSampleLocation lat="' + str(firstPnt.x) + '" lon="' + str(firstPnt.y) +'"/&amp;gt;')
&amp;nbsp;&amp;nbsp;&amp;nbsp; outFile.write(str(tabTabTab) +'&amp;lt;AltitudeSampleLocation' + '\n') 
&amp;nbsp;&amp;nbsp;&amp;nbsp; outFile.write(str(tabTabTabTab) + 'lat="' + str(firstPnt.x) + '" \n')
&amp;nbsp;&amp;nbsp;&amp;nbsp; outFile.write(str(tabTabTabTab) + 'lon="' + str(firstPnt.y) +'" /&amp;gt;'+ '\n')&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; # Add a message giving a string of the last points coordinates. This is the altitude reference point 2
&amp;nbsp;&amp;nbsp;&amp;nbsp; #gp.AddMessage('&amp;lt;AltitudeSampleLocation lat="' + str(lastPnt.x) + '" lon="' + str(lastPnt.y) +'"/&amp;gt;')
&amp;nbsp;&amp;nbsp;&amp;nbsp; outFile.write(str(tabTabTab) +'&amp;lt;AltitudeSampleLocation' + '\n') 
&amp;nbsp;&amp;nbsp;&amp;nbsp; outFile.write(str(tabTabTabTab) + 'lat="' + str(lastPnt.x) + '" \n')
&amp;nbsp;&amp;nbsp;&amp;nbsp; outFile.write(str(tabTabTabTab) + 'lon="' + str(lastPnt.y) +'" /&amp;gt;'+ '\n')
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; # Add closing tag
&amp;nbsp;&amp;nbsp;&amp;nbsp; #gp.AddMessage('&amp;lt;/AltitudeSampleLocationList&amp;gt;')
&amp;nbsp;&amp;nbsp;&amp;nbsp; outFile.write(str(tabTab) + '&amp;lt;/AltitudeSampleLocationList&amp;gt;'+ '\n')

&amp;nbsp;&amp;nbsp;&amp;nbsp; # Open the the Polyline point list tag
&amp;nbsp;&amp;nbsp;&amp;nbsp; gp.AddMessage("Feature " + str(row.getvalue(desc.OIDFieldName)) + ":")
&amp;nbsp;&amp;nbsp;&amp;nbsp; gp.AddMessage('This line has ' + str(numVertices) + ' vertices according to the attribute table')
&amp;nbsp;&amp;nbsp;&amp;nbsp; #gp.AddMessage('&amp;lt;PolylinePointList&amp;gt;')
&amp;nbsp;&amp;nbsp;&amp;nbsp; outFile.write(str(tabTab) +'&amp;lt;PolylinePointList&amp;gt;'+ '\n')

&amp;nbsp;&amp;nbsp;&amp;nbsp; # Set the part number to zero initially and set the variable partcount
&amp;nbsp;&amp;nbsp;&amp;nbsp; partnum = 0
&amp;nbsp;&amp;nbsp;&amp;nbsp; partcount = feat.PartCount
&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; # Print the part number
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gp.AddMessage( "Line Part " + str(partnum) + ":")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; part = feat.GetPart(partnum)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pnt = part.Next()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pntcount = 0

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Define the altitude list to be used for bridges with over 2 vertices
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; altList = ['1','2','3','4','5','6','5','4','3','2','1']
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; altIndex = 0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; altitude = altList[altIndex]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; # Enter while loop for each vertex depending on the number of vertices
&amp;nbsp;&amp;nbsp;&amp;nbsp; # If bridge only has 2 vertices, construct feature using first, last and centroid and standard alt list
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if numVertices == 2:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # write first point set using the firstPnt variable and a standard altitude
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #gp.AddMessage('&amp;lt;PolylinePoint latitude="' + str(firstPnt.x) + '" lon="' + str(firstPnt.y) +'" altitude="-1.00"/&amp;gt;')
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outFile.write(str(tabTabTab) +'&amp;lt;PolylinePoint' +&amp;nbsp; '\n')
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outFile.write(str(tabTabTabTab) + 'latitude="' + str(firstPnt.x) + '"'+ '\n')
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outFile.write(str(tabTabTabTab) + 'longitude="' + str(firstPnt.x) + '"' + '\n')
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outFile.write(str(tabTabTabTab) + 'altitude="-2M" /&amp;gt;' + '\n')
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # write mid point set using the middlePnt variable and a standard altitude
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #gp.AddMessage('&amp;lt;PolylinePoint latitude="' + str(middlePnt.x) + '" lon="' + str(middlePnt.y) +'" altitude="4.00"/&amp;gt;')
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outFile.write(str(tabTabTab) +'&amp;lt;PolylinePoint' + '\n')
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outFile.write(str(tabTabTabTab) + 'latitude="' + str(middlePnt.x) + '"' + '\n')
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outFile.write(str(tabTabTabTab) + 'longitude="' + str(middlePnt.x) + '"' + '\n')
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outFile.write(str(tabTabTabTab) + 'altitude="4M" /&amp;gt;' + '\n')
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # write last point set using the lastPnt variable and a standard altitude
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #gp.AddMessage('&amp;lt;PolylinePoint latitude="' + str(lastPnt.x) + '" lon="' + str(lastPnt.y) +'" altitude="-1.00"/&amp;gt;')
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outFile.write(str(tabTabTab) +'&amp;lt;PolylinePoint' +&amp;nbsp; '\n')
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outFile.write(str(tabTabTabTab) + 'latitude="' + str(lastPnt.x) + '"' + '\n')
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outFile.write(str(tabTabTabTab) + 'longitude="' + str(lastPnt.x) + '"' + '\n')
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outFile.write(str(tabTabTabTab) + 'altitude="-2M" /&amp;gt;' +&amp;nbsp; '\n')
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # If bridge has more than than 2 vertices do something else.&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&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; while pnt:
&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; # count number of vertices assign it to verts variable. Do this by checking if pnt exists. If not, counting has finished.
&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; pntcount += 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; # Define the varibles coordX and coordY as the x and y of 'pnt'
&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; coordX = pnt.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; coordY = pnt.y
&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; # Cycle through each vertice and write polyline point tag
&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; #gp.AddMessage('&amp;lt;PolylinePoint latitude="' + str(coordY) + '" lon="' + str(coordX) + ' altitude="' + str(altitude)+ '"/&amp;gt;')
&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; outFile.write(str(tabTabTab) +'&amp;lt;PolylinePoint' + '\n')
&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; outFile.write(str(tabTabTabTab) + 'latitude="' + str(coordX) + '"' + '\n')
&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; outFile.write(str(tabTabTabTab) + 'longitude="' + str(coordY) + '"' + '\n')
&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; outFile.write(str(tabTabTabTab) + 'altitude="' + str(altitude)+ 'M" /&amp;gt;'+ '\n')
&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; # Iterate through altitude list
&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; altIndex =+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; if altIndex == 6:
&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; altIndex = 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; pnt = part.Next()
&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; # Close polyline point list tag
&amp;nbsp;&amp;nbsp;&amp;nbsp; #gp.AddMessage('&amp;lt;/PolylinePointList&amp;gt;')
&amp;nbsp;&amp;nbsp;&amp;nbsp; outFile.write(str(tabTab) +'&amp;lt;/PolylinePointList&amp;gt;'+ '\n')
&amp;nbsp;&amp;nbsp;&amp;nbsp; # write polylineObjectPlacementList XML
&amp;nbsp;&amp;nbsp;&amp;nbsp; #gp.AddMessage('&amp;lt;PolylineObjectPlacementList&amp;gt;')
&amp;nbsp;&amp;nbsp;&amp;nbsp; outFile.write(str(tabTab) +'&amp;lt;PolylineObjectPlacementList&amp;gt;'+ '\n')
&amp;nbsp;&amp;nbsp;&amp;nbsp; # write placement id guid
&amp;nbsp;&amp;nbsp;&amp;nbsp; #gp.AddMessage('&amp;lt;PolylineObjectPlacement id="{70CE4D5C-D4A2-4AC8-B064-33FEFF87E748}"/&amp;gt;')
&amp;nbsp;&amp;nbsp;&amp;nbsp; outFile.write(str(tabTabTab) +'&amp;lt;PolylineObjectPlacement' + '\n')
&amp;nbsp;&amp;nbsp;&amp;nbsp; outFile.write(str(tabTabTabTab) + 'id="{70CE4D5C-D4A2-4AC8-B064-33FEFF87E748}" /&amp;gt;'+ '\n')
&amp;nbsp;&amp;nbsp;&amp;nbsp; # close tag
&amp;nbsp;&amp;nbsp;&amp;nbsp; #gp.AddMessage('&amp;lt;/PolylineObjectPlacementList&amp;gt;')
&amp;nbsp;&amp;nbsp;&amp;nbsp; outFile.write(str(tabTab) +'&amp;lt;/PolylineObjectPlacementList&amp;gt;'+ '\n')
&amp;nbsp;&amp;nbsp;&amp;nbsp; # close extrusion bridge tag
&amp;nbsp;&amp;nbsp;&amp;nbsp; #gp.AddMessage('&amp;lt;/ExtrusionBridge&amp;gt;')
&amp;nbsp;&amp;nbsp;&amp;nbsp; outFile.write(str(tab)+'&amp;lt;/ExtrusionBridge&amp;gt;'+ '\n'+ '\n')

&amp;nbsp;&amp;nbsp;&amp;nbsp; # Move search cursor to next row/feature
&amp;nbsp;&amp;nbsp;&amp;nbsp; row = rows.Next()
&amp;nbsp;&amp;nbsp;&amp;nbsp; # iterate through lists
&amp;nbsp;&amp;nbsp;&amp;nbsp; denseIndex=denseIndex+1
&amp;nbsp;&amp;nbsp;&amp;nbsp; if denseIndex == 5:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; denseIndex = 0

# Delete the search cursor to avoid locks etc
del rows,row

# close XML
#gp.AddMessage('&amp;lt;/FSData&amp;gt;')
outFile.write('&amp;lt;/FSData&amp;gt;')
del gp&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks in advance.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 09 Sep 2010 01:36:07 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/cycling-through-vertices-of-lines-in-python/m-p/274279#M9468</guid>
      <dc:creator>TimBarnes</dc:creator>
      <dc:date>2010-09-09T01:36:07Z</dc:date>
    </item>
    <item>
      <title>Re: cycling through vertices of lines in python (arcgisscripting)</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/cycling-through-vertices-of-lines-in-python/m-p/274280#M9469</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;altIndex =+1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;should be&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;altIndex += 1&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 09 Sep 2010 08:36:43 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/cycling-through-vertices-of-lines-in-python/m-p/274280#M9469</guid>
      <dc:creator>DanPatterson_Retired</dc:creator>
      <dc:date>2010-09-09T08:36:43Z</dc:date>
    </item>
    <item>
      <title>Re: cycling through vertices of lines in python (arcgisscripting)</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/cycling-through-vertices-of-lines-in-python/m-p/274281#M9470</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thanks for the reply Don, unfortunately it still isn't out putting the correct values (all are 1, the first item in the list)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Any other ideas? I've tried changing the indentation, tried different forms (i.e. altIndex=altIndex+1) but just cannot seem to get it work!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Sep 2010 22:31:19 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/cycling-through-vertices-of-lines-in-python/m-p/274281#M9470</guid>
      <dc:creator>TimBarnes</dc:creator>
      <dc:date>2010-09-12T22:31:19Z</dc:date>
    </item>
    <item>
      <title>Re: cycling through vertices of lines in python (arcgisscripting)</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/cycling-through-vertices-of-lines-in-python/m-p/274282#M9471</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Vertices in Parts are not properly pythonic iterable. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You have to use a next() operator or wrap the function in an iterator.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;See my example on the resources for stepping through parts to find and delete donuts in polygons.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The same applies to polylines.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://resources.arcgis.com/gallery/file/geoprocessing/details?entryID=C4E10FE5-1422-2418-A06D-33952BB8D1D7"&gt;http://resources.arcgis.com/gallery/file/geoprocessing/details?entryID=C4E10FE5-1422-2418-A06D-33952BB8D1D7&lt;/A&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Sep 2010 23:44:12 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/cycling-through-vertices-of-lines-in-python/m-p/274282#M9471</guid>
      <dc:creator>KimOllivier</dc:creator>
      <dc:date>2010-09-12T23:44:12Z</dc:date>
    </item>
    <item>
      <title>Re: cycling through vertices of lines in python (arcgisscripting)</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/cycling-through-vertices-of-lines-in-python/m-p/274283#M9472</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pnt = part.Next()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; partnum += 1
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This doesn't look right either, setting a point object to the next part.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 13:23:21 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/cycling-through-vertices-of-lines-in-python/m-p/274283#M9472</guid>
      <dc:creator>KimOllivier</dc:creator>
      <dc:date>2021-12-11T13:23:21Z</dc:date>
    </item>
  </channel>
</rss>

