I am hoping to automate a process which was previously done manually. For this project, streams are being analyzed for how often they intersect with a road. Starting at the stream mouth and going up stream, the stream segment receives an ID number indicating how many road crossings it has encounters. So, the first stream segment (the stream mouth) has a '0', the next segment (having gone under one road) has a '1', the next segment has a '2' and so on (see the picture). This is made tricky by the fact that the streams often time with branch apart, and we want to consider stream segments to occur only at road crossings and not stream branches. This is difficult to achieve since "Split line at point" with split the polylines at both the road intersections (which is a point shapefile) and the stream branches (or vertices). After that, I do not know how to add IDs to line segments in a specific order, and then start over at zero when another stream is started.
Any help working through this would be much appreciated!