I figured out a way to get all the routes for a set of links. I ran the identity tool between the end point and the start point of each which will serve as a many to many table between the links (after a dissolve). I wrote a Python script that recursively looks through the table from the start link to the end link and writes out a link combination for each. Came up with about 2200 routes for the project I am working on.
Here is the recursive function:
def follow_connections_recursive(
self, this_upstream_link, start_nodes, this_route_string, destination_link):
# loop through input points and find start point
fields = ["To_Link"]
with arcpy.da.SearchCursor(
start_nodes, fields, "From_Link = '"+this_upstream_link+ "'") as cursor:
for this_start_point in cursor:
this_link = this_start_point[0]
#arcpy.AddMessage(this_link)
temp_route_string = this_route_string
this_route_string = this_route_string + '-'+ this_link
if (this_link == destination_link):
arcpy.AddMessage("Route : " + this_route_string)
else:
self.follow_connections_recursive(this_link, start_nodes, this_route_string, destination_link)
this_route_string = temp_route_string
return