You could create one or you can use some credits and have access to Esri's network.
It looks like you already have the road layer so you should probably create the network yourself.
I think it is 0.5 credits per route if you decide to use their network. The number of credits used depends on what you are doing. https://pro.arcgis.com/en/pro-app/tool-...
On a closer investigation it was just running very slowly and evident when performed within Arc too, was fixed by re-creating the Network Dataset layer and ticking on 'create service area index' as this wasn't done initially, was much faster after that...
Using the steps and script posted by Emil has worked (for the most part). I added one extra step because my centerlines are modeled different.
I ran the script on the first category of lines to get the first result which are the lines on one side of the intersection. The step I then added was to make a copy of the first category of lines, Flip the direction ...
The problem is resolved now and I would like to share the solution so i am answering my own question.
I tried publishing multiple network datasets and the issue was same.
This was causing an issue in configuring the directions widget in Web App Builder as well.
However this is resolved now.
I am using ArcGIS Portal and it turns out this was configured ...
This is a process that is best done through automation, and an advanced license helps. The basic work flow:
Divide your lines up for by their categories. For each category:
Select lines within desired line distance of points, such as A = 400
Dissolve selection with multipart
Split your selected dissolve line by your points (Advanced license needed)
Very tough indeed. So try this on roads dissolved by CLASS:
arcpy.Intersect_analysis(in_features="ROADS_Dissolved #", out_feature_class="C:/SCRATCH/SCRATCH.gdb/MPART", join_attributes="ALL", cluster_tolerance="-1 Unknown", output_type="POINT")
arcpy.AddGeometryAttributes_management(Input_Features="MPART", Geometry_Properties="CENTROID", Length_Unit="", ...
Your network need to include an attribute which contains the travel time.
Then when you create your network dataset you can select your "cost" attributes:
In the above example my attribute is named "Minutes". This attribute indicate the travel time for each edges.
After that you should be able to select this attribute as impedance.
But of course arcmap ...