This is just to inform about things that are most likely bugs.
I already posted a question and answer myself here: arcgis desktop - arcpy - creating a 3d arcpy.Polyline - Geographic Information Systems Stack Exchange.
The thing is: I need to create a 3d polyline with arcpy having a series of XYZ coordinates.
If I do:
<SPAN class="">array </SPAN><SPAN class="">=</SPAN><SPAN class=""> arcpy</SPAN><SPAN class="">.</SPAN><SPAN class="">Array</SPAN><SPAN class="">([</SPAN><SPAN class="">arcpy</SPAN><SPAN class="">.</SPAN><SPAN class="">Point</SPAN><SPAN class="">(</SPAN><SPAN class="">0</SPAN><SPAN class="">,</SPAN><SPAN class=""> </SPAN><SPAN class="">0</SPAN><SPAN class="">,</SPAN><SPAN class=""> </SPAN><SPAN class="">0</SPAN><SPAN class="">),</SPAN><SPAN class="">arcpy</SPAN><SPAN class="">.</SPAN><SPAN class="">Point</SPAN><SPAN class="">(</SPAN><SPAN class="">0</SPAN><SPAN class="">,</SPAN><SPAN class=""> </SPAN><SPAN class="">100</SPAN><SPAN class="">,</SPAN><SPAN class=""> </SPAN><SPAN class="">-</SPAN><SPAN class="">1000</SPAN><SPAN class="">)])
</SPAN><SPAN class="">polyline </SPAN><SPAN class="">=</SPAN><SPAN class=""> arcpy</SPAN><SPAN class="">.</SPAN><SPAN class="">Polyline</SPAN><SPAN class="">(</SPAN><SPAN class="">array</SPAN><SPAN class="">,</SPAN><SPAN class=""> has_z</SPAN><SPAN class="">=</SPAN><SPAN class="">True</SPAN><SPAN class="">)</SPAN>
I get an error, saying that has_z property is Read-only. From the arcpy.Polyline official docs, this is an optional input parameter, and lke so, the user should be able to set it (to True or False).
However, if I set has_z parameter via python positional parameters rather than named parameter, it works:
<SPAN class=""></SPAN><SPAN class=""></SPAN><CODE><SPAN class="">polyline </SPAN><SPAN class="">=</SPAN><SPAN class=""> arcpy</SPAN><SPAN class="">.</SPAN><SPAN class="">Polyline</SPAN><SPAN class="">(</SPAN><SPAN class="">array</SPAN><SPAN class="">,</SPAN><SPAN class=""> None, </SPAN><SPAN class=""></SPAN><SPAN class="">True</SPAN><SPAN class="">)
</SPAN>
Another problem with 3d Polylines in general, is that their Shape_Length is always 0 for vertical lines (i.e. with equal first and lastPoint).
Also, length is probably calculated regardless the Z coordinate, resulting in strange lengths values.