Select to view content in your preferred language

Model Builder: how to use a Script output as an input for a Toolbar

89
1
yesterday
DonatellaMarino1
New Contributor

Hi all,

I now have a script that extends a Line to the edge of a Polygon (see my previous post), and I would like to use this extended Line as input for another Toolbar — specifically, in "Create a TIN" as a "Soft Line." Does anyone know how I can do this?

DonatellaMarino1_0-1747662591276.png

Hier what I'm missing: since I can't connect two Processes, I don't know how I can proceed. 

Hier there is my Script:
import arcpy
import math

dist = 500 
fc_line = arcpy.GetParameterAsText(0) 
fc_poly = arcpy.GetParameterAsText(1) 
output_fc = arcpy.GetParameterAsText(2)


temp_fc = "in_memory/temp_fc"
arcpy.CopyFeatures_management(fc_line, temp_fc)
with arcpy.da.SearchCursor(fc_poly, "SHAPE@") as scur:
for poly, in scur:
boundary = poly.boundary()
arcpy.SelectLayerByLocation_management(temp_fc, "WITHIN", poly)
with arcpy.da.UpdateCursor(temp_fc, "SHAPE@") as ucur:
for line, in ucur:
arr, = line.getPart()
SR = line.spatialReference # Räumliche Referenz der Linie
p1, p2 = arr[:2] 
angle = math.atan2(p2.Y - p1.Y, p2.X - p1.X) 
p = arcpy.Point(p1.X - dist * math.cos(angle), p1.Y - dist * math.sin(angle)) 
arr.insert(0, p) 

pn1, pn = arr[-2:] 
angle = math.atan2(pn.Y - pn1.Y, pn.X - pn1.X) 
p = arcpy.Point(pn.X + dist * math.cos(angle), pn.Y + dist * math.sin(angle)) 
arr.append(p) 

line = arcpy.Polyline(arr, SR) 
line = line.cut(boundary)[1] 

ucur.updateRow([line])

arcpy.CopyFeatures_management(temp_fc, output_fc)
arcpy.Delete_management(temp_fc)
arcpy.SetParameterAsText(2, output_fc)

 

Thanks for any Tipps,

Donatella

0 Kudos
1 Reply
BobBooth1
Esri Regular Contributor

You need to define the outputfc result layer as an output parameter of your tool.

https://pro.arcgis.com/en/pro-app/latest/help/sharing/overview/inputs-and-outputs.htm

Once that is done, when you add the tool to ModelBuilder, the tool will show an output oval that you can connect as input to other processes.

https://learn.arcgis.com/en/projects/create-a-python-script-tool/#make-a-tool-and-add-parameters:~:t....

https://support.esri.com/en-us/knowledge-base/how-to-add-output-parameter-in-a-model-builder-for-a-s...

 

0 Kudos