Loop through multiple input values ArcPy Toolbox

573
4
06-23-2021 05:51 AM
Nicola
by
New Contributor

Hello everybody,

I'm trying to create a tool in ArcGIS, that creates 3D Multipatches from multiple input values.

The tool should extrude between input TIN 1 and input TIN 2, then between input TIN 2 and input 3 and so on...

Somehow my loop is not working. It gives me three 3D Multipatches back, but 3 times the same.

Below I post my code. Maybe someone has an idea or a hint what is wrong with my loop.

#进口arcpy导入模块,操作系统,系统,字符串,traceback # Input layers from typing import List, Any inLayers = arcpy.GetParameterAsText(0) inLayerslist = inLayers.split(";") # Output workspace outFolder = arcpy.GetParameterAsText(1) # OTHER FRONT STUFF for lyr in inLayerslist: n=len(inLayerslist) arcpy.AddMessage(str(inLayerslist)) arcpy.AddMessage(str(len(inLayerslist))) for i in range (0,n-1): arcpy.AddMessage(str(inLayerslist[i])) arcpy.AddMessage(str(i)) inPoly = arcpy.GetParameterAsText(2) layerName = lyr + "solid" + str(n) solid = arcpy.ExtrudeBetween_3d(inLayerslist[i],inLayerslist[i+1],inPoly,layerName)

0Kudos
4 Replies
BlakeTerhune
MVP Regular Contributor

Do you also need toextrude between the first TIN and the last TIN?

0Kudos
Nicola
by
New Contributor

No.... Am I doing this:grinning_face_with_sweat:? I only need to extrude between theconsecutive ones.

0Kudos
BlakeTerhune
MVP Regular Contributor

What about something like this?

inLayers = arcpy.GetParameterAsText(0) inLayerslist = inLayers.split(";") outFolder = arcpy.GetParameterAsText(1) inPoly = arcpy.GetParameterAsText(2) arcpy.AddMessage(inLayerslist) arcpy.AddMessage(len(inLayerslist)) for index, lyr in enumerate(inLayerslist): next_lyr = inLayerslist[index + 1] arcpy.AddMessage(f"Extrude between {lyr} and {next_lyr}") layerName = f"{lyr}solid{index}" solid = arcpy.ExtrudeBetween_3d(lyr, next_lyr, inPoly, layerName)

0Kudos
KevinWiley13
New Contributor

Hi Nicola,

Did you ever work out a solution to your Extrude Between script? I am facing a similar problem and am hoping to build off of any results you may have. Thanks for any help you can provide.

Kevin

0Kudos