Is there a method to split thousands of polylines by employing a tool like the "Editor" - "Split" method and using distance, in ArcMap?

Split distance tool

When I utilize the "split" - "distance" tool (fig1), it only splits one section leaving the remainder unsplit (fig2).

Result from split distance, remainder of polyline is left unsegmented

I have attempted the "COGO" tool - using "Proportion", and can utilize the "duplicate" button to assign the remainder of segments which seems like a viable option. But I would like to find some way to automate this process.

Has anyone found a method to do this or is Python (coding) the only way?

I am trying to split over 2000 lines into equal distance segments (fig 3) of ~600m. Each segment will have its angle measured, and will ultimately result in a rose diagram representing angular statistics. The distance of each segment is important in my splitting regime (a long line will have a greater representation of a particular angle on my rose diagram than the neighboring shorter line segments).

I currently am using ArcMap 10.2 with an advanced user license.

Sample of polylines

  • Check out this post that first creates points at equal intervals along the lines, then splits the polylines at the points using Python in ArcMap. Jul 14, 2016 at 10:04

4 Answers 4


To split multiple lines at a set distance using ArcGIS Desktop (ArcMap or ArcGIS Pro), the following two steps work:

  1. Generate Points Along Lines tool. It's in the Data management toolbox under "sampling". You can set a specific distance between points along the lines.

  2. Split Line at Point tool. It's in the Data Management toolbox under "Features". Use the points from the previous step to split your lines.

There is an easier and quicker way to do this in QGIS too.


The method you would use in ArcMap would be to use linear referencing. This assumes each line seen in your image above is indeed a single polyline. You would need to convert your polyline dataset into a polylineM featureclass and set the measurement to be the length of the polyline. This creates a new featureclass that superficially looks identical but is a PolylineM featureclass with measure (I'm assuming this will be in metres).

Knowing the length of each polyline you create a separate non-spatial "event" table with start and end values that are the distances along each polyline ID. So imagine you have a polyline that is 150m long and you want to break it up into three 50m lines then your start and ends would be: 0-50, 50-100 and 100-50.

You would then create these "events" on top of your base PolylineM dataset.

An advantage of this approach is what happens if 50m was too much and say you wanted 25m polylines? It's trivial to edit the event table. You are also not breaking up your base dataset, there may be good reasons to keep that whole?

  • I have successfully created my polylineM featureclass as per your suggestions, but am confused as to the process of making my non-spatial "event" table. I am not sure if I am meant to "add fields" representing the ranges (0-50, 50-100, etc that you mentioned) into my attribute table? My polylines range from 185 to 46,000 meters in length and I would like to break all 406 polylines in my featureclass into (for example) 185m segments. That would be a lot of fields to add. Jul 21, 2016 at 14:58
  • No you create a table with 3 fields, route I'd, from distance and to distance. Each row would be a line. You do not add fields to the polyline M featureless.
    – Hornbydd
    Jul 21, 2016 at 18:16

You can use GRASS plugin under QGIS instead of ArcGIS software to split the polyline by specific length. There is a tool "v.split.length - Split lines to shorter segments by length" that can do exactly what you asking, as you can see below:

enter image description here

If QGIS with GRASS is not installed, I think it is time to try it. You need to download OSGeo4W Network Installer, then double click the EXE file, select Advance install and follow the steps until you find the following window:

enter image description here

Make sure to install Grass 7.0.4 with QGIS 2.14.4 (Long Term Release), and SAGA 2.1.2.

QGIS 2.16 is the latest, you can download it if you want to see the latest features of QGIS, but the Long Term Release is the stable version. Then continue with the installation process.

  1. Open QGIS -> Go to Processing menu -> Enable Processing Toolbox.
  2. From Processing Toolbox -> Go GRASS GIS 7 Commands -> Vector -> v.split.length - Split lines to shorter segments by length. OR easier write "split" in the search box and you will find the tool.

If you create a point at the midpoint of the line (create two attributes X, and Y in the attribute table; then calculate geometry for each attribute calculating midpoint X and then midpoint Y), export the attribute table as a table, bring it into ArcMap, then display X, Y Data. You should then just be able to use the Split Line at Point tool.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.