I'm following an ESRI online learning tutorial: Creating Python Toolboxes Using ArcGIS 10.1.
I copy the script and test on my data but the new tool only recognises 'Street' as an input feature.

Can anyone tell me where is wrong with the codes below?
<SPAN class="keyword token">import</SPAN> arcpy
<SPAN class="keyword token">class</SPAN> <SPAN class="token class-name">Toolbox</SPAN><SPAN class="punctuation token">(</SPAN>object<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">def</SPAN> <SPAN class="token function">__init__</SPAN><SPAN class="punctuation token">(</SPAN>self<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="string token">"""Define the toolbox (the name of the toolbox is the name of the
.pyt file)."""</SPAN>
self<SPAN class="punctuation token">.</SPAN>label <SPAN class="operator token">=</SPAN> <SPAN class="string token">"Calculate Geometry"</SPAN>
self<SPAN class="punctuation token">.</SPAN>alias <SPAN class="operator token">=</SPAN> <SPAN class="string token">"geometry"</SPAN>
<SPAN class="comment token"># List of tool classes associated with this toolbox</SPAN>
self<SPAN class="punctuation token">.</SPAN>tools <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">[</SPAN>CalculateGeometry<SPAN class="punctuation token">]</SPAN>
<SPAN class="keyword token">class</SPAN> <SPAN class="token class-name">CalculateGeometry</SPAN><SPAN class="punctuation token">(</SPAN>object<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">def</SPAN> <SPAN class="token function">__init__</SPAN><SPAN class="punctuation token">(</SPAN>self<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="string token">"""Define the tool (tool name is the name of the class)."""</SPAN>
self<SPAN class="punctuation token">.</SPAN>label <SPAN class="operator token">=</SPAN> <SPAN class="string token">"CalculateGeometry"</SPAN>
self<SPAN class="punctuation token">.</SPAN>description <SPAN class="operator token">=</SPAN> <SPAN class="string token">""</SPAN>
self<SPAN class="punctuation token">.</SPAN>canRunInBackground <SPAN class="operator token">=</SPAN> <SPAN class="token boolean">True</SPAN>
<SPAN class="keyword token">def</SPAN> <SPAN class="token function">getParameterInfo</SPAN><SPAN class="punctuation token">(</SPAN>self<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="comment token"># first parameter</SPAN>
<SPAN class="string token">"""Define parameter definitions"""</SPAN>
in_features <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>Parameter<SPAN class="punctuation token">(</SPAN>
displayName <SPAN class="operator token">=</SPAN> <SPAN class="string token">'Input Feature'</SPAN><SPAN class="punctuation token">,</SPAN>
name <SPAN class="operator token">=</SPAN> <SPAN class="string token">'in_features'</SPAN><SPAN class="punctuation token">,</SPAN>
datatype <SPAN class="operator token">=</SPAN> <SPAN class="string token">'Feature Layer'</SPAN><SPAN class="punctuation token">,</SPAN>
parameterType <SPAN class="operator token">=</SPAN> <SPAN class="string token">'Required'</SPAN><SPAN class="punctuation token">,</SPAN>
direction <SPAN class="operator token">=</SPAN> <SPAN class="string token">'Input'</SPAN><SPAN class="punctuation token">)</SPAN>
in_features<SPAN class="punctuation token">.</SPAN>filter<SPAN class="punctuation token">.</SPAN>list <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">[</SPAN><SPAN class="string token">'Point'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'Polyline'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'Polygon'</SPAN><SPAN class="punctuation token">]</SPAN>
<SPAN class="comment token"># second parameter</SPAN>
field <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>Parameter<SPAN class="punctuation token">(</SPAN>
displayName <SPAN class="operator token">=</SPAN> <SPAN class="string token">'Field name'</SPAN><SPAN class="punctuation token">,</SPAN>
name <SPAN class="operator token">=</SPAN> <SPAN class="string token">'field_name'</SPAN><SPAN class="punctuation token">,</SPAN>
datatype <SPAN class="operator token">=</SPAN> <SPAN class="string token">'Field'</SPAN><SPAN class="punctuation token">,</SPAN>
parameterType <SPAN class="operator token">=</SPAN> <SPAN class="string token">'Required'</SPAN><SPAN class="punctuation token">,</SPAN>
direction <SPAN class="operator token">=</SPAN> <SPAN class="string token">'Input'</SPAN><SPAN class="punctuation token">)</SPAN>
field<SPAN class="punctuation token">.</SPAN>parameterDependencies <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">[</SPAN>in_features<SPAN class="punctuation token">.</SPAN>name<SPAN class="punctuation token">]</SPAN>
<SPAN class="comment token"># only show field belongs to the input feature</SPAN>
in_features<SPAN class="punctuation token">.</SPAN>filter<SPAN class="punctuation token">.</SPAN>list <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">[</SPAN><SPAN class="string token">'Short'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'Long'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'Double'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'Float'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'Text'</SPAN><SPAN class="punctuation token">]</SPAN>
<SPAN class="comment token"># third parameter</SPAN>
geomProperty <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>Parameter<SPAN class="punctuation token">(</SPAN>
displayName <SPAN class="operator token">=</SPAN> <SPAN class="string token">'Property'</SPAN><SPAN class="punctuation token">,</SPAN>
name <SPAN class="operator token">=</SPAN> <SPAN class="string token">'geomProperty'</SPAN><SPAN class="punctuation token">,</SPAN>
datatype <SPAN class="operator token">=</SPAN> <SPAN class="string token">'String'</SPAN><SPAN class="punctuation token">,</SPAN>
parameterType <SPAN class="operator token">=</SPAN> <SPAN class="string token">'Required'</SPAN><SPAN class="punctuation token">,</SPAN>
direction <SPAN class="operator token">=</SPAN> <SPAN class="string token">'Input'</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="comment token"># fourth parameter</SPAN>
units <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>Parameter<SPAN class="punctuation token">(</SPAN>
displayName <SPAN class="operator token">=</SPAN> <SPAN class="string token">'Units'</SPAN><SPAN class="punctuation token">,</SPAN>
name <SPAN class="operator token">=</SPAN> <SPAN class="string token">'units'</SPAN><SPAN class="punctuation token">,</SPAN>
datatype <SPAN class="operator token">=</SPAN> <SPAN class="string token">'String'</SPAN><SPAN class="punctuation token">,</SPAN>
parameterType <SPAN class="operator token">=</SPAN> <SPAN class="string token">'optional'</SPAN><SPAN class="punctuation token">,</SPAN>
direction <SPAN class="operator token">=</SPAN> <SPAN class="string token">'Input'</SPAN><SPAN class="punctuation token">,</SPAN>
enabled <SPAN class="operator token">=</SPAN> <SPAN class="token boolean">False</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="comment token"># fifth parameter</SPAN>
out_features <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>Parameter<SPAN class="punctuation token">(</SPAN>
displayName <SPAN class="operator token">=</SPAN> <SPAN class="string token">'Output Features'</SPAN><SPAN class="punctuation token">,</SPAN>
name <SPAN class="operator token">=</SPAN> <SPAN class="string token">'out_features'</SPAN><SPAN class="punctuation token">,</SPAN>
datatype <SPAN class="operator token">=</SPAN> <SPAN class="string token">'Feature Layer'</SPAN><SPAN class="punctuation token">,</SPAN>
parameterType <SPAN class="operator token">=</SPAN> <SPAN class="string token">'Derived'</SPAN><SPAN class="punctuation token">,</SPAN>
direction <SPAN class="operator token">=</SPAN> <SPAN class="string token">'Output'</SPAN><SPAN class="punctuation token">)</SPAN>
field<SPAN class="punctuation token">.</SPAN>parameterDependencies <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">[</SPAN>in_features<SPAN class="punctuation token">.</SPAN>name<SPAN class="punctuation token">]</SPAN>
out_features<SPAN class="punctuation token">.</SPAN>schema<SPAN class="punctuation token">.</SPAN>clone <SPAN class="operator token">=</SPAN> <SPAN class="token boolean">True</SPAN>
params <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">[</SPAN>in_features<SPAN class="punctuation token">,</SPAN> field<SPAN class="punctuation token">,</SPAN> geomProperty<SPAN class="punctuation token">,</SPAN> units<SPAN class="punctuation token">,</SPAN> out_features<SPAN class="punctuation token">]</SPAN>
<SPAN class="keyword token">return</SPAN> params
<SPAN class="keyword token">def</SPAN> <SPAN class="token function">isLicensed</SPAN><SPAN class="punctuation token">(</SPAN>self<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="string token">"""Set whether tool is licensed to execute."""</SPAN>
<SPAN class="keyword token">return</SPAN> <SPAN class="token boolean">True</SPAN>
<SPAN class="keyword token">def</SPAN> <SPAN class="token function">updateParameters</SPAN><SPAN class="punctuation token">(</SPAN>self<SPAN class="punctuation token">,</SPAN> parameters<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="string token">"""Modify the values and properties of parameters before internal
validation is performed. This method is called whenever a parameter
has been changed."""</SPAN>
<SPAN class="comment token"># Get Inputs</SPAN>
in_features <SPAN class="operator token">=</SPAN> parameters<SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN>
geomProperty <SPAN class="operator token">=</SPAN> parameters<SPAN class="punctuation token">[</SPAN><SPAN class="number token">2</SPAN><SPAN class="punctuation token">]</SPAN>
units <SPAN class="operator token">=</SPAN> parameters<SPAN class="punctuation token">[</SPAN><SPAN class="number token">3</SPAN><SPAN class="punctuation token">]</SPAN>
<SPAN class="comment token"># Geometry Property Filter Lists</SPAN>
pointPropertyList <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">[</SPAN><SPAN class="string token">'X Coordinate of Point'</SPAN><SPAN class="punctuation token">,</SPAN>
<SPAN class="string token">'Y Coordinate of Point'</SPAN><SPAN class="punctuation token">]</SPAN>
linePropertyList <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">[</SPAN><SPAN class="string token">'Length'</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">'X Coordinate of Line Start'</SPAN><SPAN class="punctuation token">,</SPAN>
<SPAN class="string token">'Y Coordinate of Line Start'</SPAN><SPAN class="punctuation token">,</SPAN>
<SPAN class="string token">'X Coordinate of Line End'</SPAN><SPAN class="punctuation token">,</SPAN>
<SPAN class="string token">'Y Coordinate of Line End'</SPAN><SPAN class="punctuation token">]</SPAN>
polygonPropertyList <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">[</SPAN><SPAN class="string token">'Area'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'Perimeter'</SPAN><SPAN class="punctuation token">,</SPAN>
<SPAN class="string token">'X Coordinate of Centroid'</SPAN><SPAN class="punctuation token">,</SPAN>
<SPAN class="string token">'Y Coordinate of Centroid'</SPAN><SPAN class="punctuation token">]</SPAN>
<SPAN class="comment token"># Get shape type of input to determine</SPAN>
<SPAN class="comment token"># filter list for geometry property parameter</SPAN>
<SPAN class="keyword token">if</SPAN> in_features<SPAN class="punctuation token">.</SPAN>value<SPAN class="punctuation token">:</SPAN>
desc <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>Describe<SPAN class="punctuation token">(</SPAN>in_features<SPAN class="punctuation token">.</SPAN>valueAsText<SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">if</SPAN> desc<SPAN class="punctuation token">.</SPAN>shapeType <SPAN class="operator token">==</SPAN> <SPAN class="string token">'Point'</SPAN><SPAN class="punctuation token">:</SPAN>
geomProperty<SPAN class="punctuation token">.</SPAN>filter<SPAN class="punctuation token">.</SPAN>list <SPAN class="operator token">=</SPAN> pointPropertyList
<SPAN class="keyword token">elif</SPAN> desc<SPAN class="punctuation token">.</SPAN>shapeType <SPAN class="operator token">==</SPAN> <SPAN class="string token">'Polyline'</SPAN><SPAN class="punctuation token">:</SPAN>
geomProperty<SPAN class="punctuation token">.</SPAN>filter<SPAN class="punctuation token">.</SPAN>list <SPAN class="operator token">=</SPAN> linePropertyList
<SPAN class="keyword token">elif</SPAN> desc<SPAN class="punctuation token">.</SPAN>shapeType <SPAN class="operator token">==</SPAN> <SPAN class="string token">'Polygon'</SPAN><SPAN class="punctuation token">:</SPAN>
geomProperty<SPAN class="punctuation token">.</SPAN>filter<SPAN class="punctuation token">.</SPAN>list <SPAN class="operator token">=</SPAN> polygonPropertyList
<SPAN class="comment token"># Unit Filter Lists</SPAN>
areaUnitList <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">[</SPAN><SPAN class="string token">'Acres'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'Ares'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'Hectares'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'Square Centimeters'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'Square Inches'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'Square Feet'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'Square Kilometers'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'Square Meters'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'Square Miles'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'Square Millimeters'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'Square Yard'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'Square Decimeters'</SPAN><SPAN class="punctuation token">]</SPAN>
lengthUnitList <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">[</SPAN><SPAN class="string token">'Centimeters'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'Feet'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'Inches'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'Kilometers'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'Meters'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'Miles'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'Millimeters'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'Nautical Miles'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'Yards'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'Decimal Degrees'</SPAN><SPAN class="punctuation token">]</SPAN>
<SPAN class="comment token"># Get geometry property input to determine filter list for unit parameter</SPAN>
<SPAN class="keyword token">if</SPAN> geomProperty<SPAN class="punctuation token">.</SPAN>value<SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">if</SPAN> geomProperty<SPAN class="punctuation token">.</SPAN>valueAsText <SPAN class="operator token">==</SPAN> <SPAN class="string token">'Area'</SPAN><SPAN class="punctuation token">:</SPAN>
units<SPAN class="punctuation token">.</SPAN>enabled <SPAN class="operator token">=</SPAN> <SPAN class="token boolean">True</SPAN>
units<SPAN class="punctuation token">.</SPAN>filter<SPAN class="punctuation token">.</SPAN>list <SPAN class="operator token">=</SPAN> areaUnitList
<SPAN class="keyword token">elif</SPAN> geomProperty<SPAN class="punctuation token">.</SPAN>valueAsText <SPAN class="keyword token">in</SPAN> <SPAN class="punctuation token">[</SPAN><SPAN class="string token">'Length'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'Perimeter'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">:</SPAN>
units<SPAN class="punctuation token">.</SPAN>enabled <SPAN class="operator token">=</SPAN><SPAN class="token boolean">True</SPAN>
units<SPAN class="punctuation token">.</SPAN>filter<SPAN class="punctuation token">.</SPAN>list <SPAN class="operator token">=</SPAN> lengthUnitList
<SPAN class="keyword token">else</SPAN><SPAN class="punctuation token">:</SPAN>
units<SPAN class="punctuation token">.</SPAN>value <SPAN class="operator token">=</SPAN> <SPAN class="string token">''</SPAN>
units<SPAN class="punctuation token">.</SPAN>filter<SPAN class="punctuation token">.</SPAN>list <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">[</SPAN><SPAN class="punctuation token">]</SPAN>
units<SPAN class="punctuation token">.</SPAN>enabled <SPAN class="operator token">=</SPAN> <SPAN class="token boolean">False</SPAN>
<SPAN class="keyword token">return</SPAN>
<SPAN class="keyword token">def</SPAN> <SPAN class="token function">updateMessages</SPAN><SPAN class="punctuation token">(</SPAN>self<SPAN class="punctuation token">,</SPAN> parameters<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="string token">"""Modify the messages created by internal validation for each tool
parameter. This method is called after internal validation."""</SPAN>
in_features <SPAN class="operator token">=</SPAN> parameters<SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN>
geomProperty<SPAN class="operator token">=</SPAN> parameters<SPAN class="punctuation token">[</SPAN><SPAN class="number token">2</SPAN><SPAN class="punctuation token">]</SPAN>
units <SPAN class="operator token">=</SPAN> parameters<SPAN class="punctuation token">[</SPAN><SPAN class="number token">3</SPAN><SPAN class="punctuation token">]</SPAN>
<SPAN class="comment token"># Check is input is Multipoint or Multipatch and if so set an error</SPAN>
<SPAN class="keyword token">if</SPAN> in_features<SPAN class="punctuation token">.</SPAN>value<SPAN class="punctuation token">:</SPAN>
desc <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>Describe<SPAN class="punctuation token">(</SPAN>in_features<SPAN class="punctuation token">.</SPAN>valueAsText<SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">if</SPAN> desc<SPAN class="punctuation token">.</SPAN>shapeType <SPAN class="keyword token">in</SPAN> <SPAN class="punctuation token">[</SPAN><SPAN class="string token">'Multipoint'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'Multipatch'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">:</SPAN>
in_features<SPAN class="punctuation token">.</SPAN>setErrorMessage<SPAN class="punctuation token">(</SPAN><SPAN class="string token">'{0} features are not supported.'</SPAN><SPAN class="punctuation token">.</SPAN>format<SPAN class="punctuation token">(</SPAN>desc<SPAN class="punctuation token">.</SPAN>shapeType<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="comment token"># Check if certain geometry property value is set with no units and add error</SPAN>
<SPAN class="keyword token">if</SPAN> geomProperty<SPAN class="punctuation token">.</SPAN>valueAsText <SPAN class="keyword token">in</SPAN> <SPAN class="punctuation token">[</SPAN><SPAN class="string token">'Length'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'Perimeter'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'Area'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">if</SPAN> <SPAN class="operator token">not</SPAN> units<SPAN class="punctuation token">.</SPAN>value<SPAN class="punctuation token">:</SPAN>
units<SPAN class="punctuation token">.</SPAN>setErrorMessage<SPAN class="punctuation token">(</SPAN><SPAN class="string token">'Units required for {0} property'</SPAN><SPAN class="punctuation token">.</SPAN>format<SPAN class="punctuation token">(</SPAN>geomProperty<SPAN class="punctuation token">.</SPAN>valueAsText<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">return</SPAN>
<SPAN class="keyword token">def</SPAN> <SPAN class="token function">execute</SPAN><SPAN class="punctuation token">(</SPAN>self<SPAN class="punctuation token">,</SPAN> parameters<SPAN class="punctuation token">,</SPAN> messages<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="string token">"""The source code of the tool."""</SPAN>
<SPAN class="comment token"># Get Input</SPAN>
in_features <SPAN class="operator token">=</SPAN> parameters<SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">.</SPAN>valueAsText
field <SPAN class="operator token">=</SPAN> parameters<SPAN class="punctuation token">[</SPAN><SPAN class="number token">1</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">.</SPAN>valueAsText
geomProperty<SPAN class="operator token">=</SPAN> parameters<SPAN class="punctuation token">[</SPAN><SPAN class="number token">2</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">.</SPAN>valueAsText
units <SPAN class="operator token">=</SPAN> parameters<SPAN class="punctuation token">[</SPAN><SPAN class="number token">3</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">.</SPAN>valueAsText
shapeFieldName <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>Describe<SPAN class="punctuation token">(</SPAN>in_features<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN>shapeFieldName
<SPAN class="comment token"># Create the expression</SPAN>
exp <SPAN class="operator token">=</SPAN> <SPAN class="string token">'!'</SPAN> <SPAN class="operator token">+</SPAN> shapeFieldName
<SPAN class="keyword token">if</SPAN> geomProperty <SPAN class="operator token">==</SPAN> <SPAN class="string token">'Area'</SPAN><SPAN class="punctuation token">:</SPAN>
exp <SPAN class="operator token">+=</SPAN> <SPAN class="string token">'.area@'</SPAN><SPAN class="operator token">+</SPAN> units<SPAN class="punctuation token">.</SPAN>replace<SPAN class="punctuation token">(</SPAN><SPAN class="string token">''</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">''</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">elif</SPAN> geomProperty <SPAN class="keyword token">in</SPAN> <SPAN class="punctuation token">[</SPAN><SPAN class="string token">'Length'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'Perimeter'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">:</SPAN>
exp <SPAN class="operator token">+=</SPAN> <SPAN class="string token">'.length@'</SPAN><SPAN class="operator token">+</SPAN> units<SPAN class="punctuation token">.</SPAN>replace<SPAN class="punctuation token">(</SPAN><SPAN class="string token">''</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">''</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">else</SPAN><SPAN class="punctuation token">:</SPAN>
propertyList <SPAN class="operator token">=</SPAN> geomProperty<SPAN class="punctuation token">.</SPAN>split<SPAN class="punctuation token">(</SPAN><SPAN class="string token">''</SPAN><SPAN class="punctuation token">)</SPAN>
coord <SPAN class="operator token">=</SPAN> propertyList<SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN>
<SPAN class="keyword token">if</SPAN> propertyList<SPAN class="punctuation token">[</SPAN><SPAN class="operator token">-</SPAN><SPAN class="number token">1</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="keyword token">in</SPAN> <SPAN class="punctuation token">[</SPAN><SPAN class="string token">'Point'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'Start'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">:</SPAN>
exp <SPAN class="operator token">+=</SPAN> <SPAN class="string token">'.firstPoint.'</SPAN> <SPAN class="operator token">+</SPAN> coord
<SPAN class="keyword token">elif</SPAN> propertyList<SPAN class="punctuation token">[</SPAN><SPAN class="operator token">-</SPAN><SPAN class="number token">1</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="operator token">==</SPAN> <SPAN class="string token">'End'</SPAN><SPAN class="punctuation token">:</SPAN>
exp <SPAN class="operator token">+=</SPAN> <SPAN class="string token">'.lastPoint.'</SPAN><SPAN class="operator token">+</SPAN> coord
<SPAN class="keyword token">elif</SPAN> propertyList<SPAN class="punctuation token">[</SPAN><SPAN class="operator token">-</SPAN><SPAN class="number token">1</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="operator token">==</SPAN> <SPAN class="string token">'Centroid'</SPAN><SPAN class="punctuation token">:</SPAN>
exp <SPAN class="operator token">+=</SPAN> <SPAN class="string token">'.centroid.'</SPAN><SPAN class="operator token">+</SPAN> coord
exp<SPAN class="operator token">+=</SPAN> <SPAN class="string token">'!'</SPAN>
messages<SPAN class="punctuation token">.</SPAN>addMessage<SPAN class="punctuation token">(</SPAN>
<SPAN class="string token">'\nExpression used for field calculation: {0}\n'</SPAN><SPAN class="punctuation token">.</SPAN>format<SPAN class="punctuation token">(</SPAN>exp<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="comment token">#Calculate Field</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>CalculateField_management<SPAN class="punctuation token">(</SPAN>in_features<SPAN class="punctuation token">,</SPAN>field<SPAN class="punctuation token">,</SPAN>exp<SPAN class="punctuation token">,</SPAN><SPAN class="string token">'PYTHON_9.3'</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">return</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>