Automatically dividing multiple polygons into halfs

Very simple solution possible in this case, because it's enough to find pair of vertices that will split hexagon in equal parts:

FeatureVerticesToPoints(in_features="HEXAGONS", out_feature_class="C:/SCRATCH/points.shp", point_location="ALL")
SelectLayerByAttribute(in_layer_or_view="points", selection_type="NEW_SELECTION", where_clause='mod( "FID",7) in (0,3)')
PointsToLine(Input_Features="points", Output_Feature_Class="C:/SCRATCH/CUTS.shp", Line_Field="ORIG_FID", Sort_Field="", Close_Line="NO_CLOSE")

Output:

enter image description here

To get one of 2 possible diagonal splits use " in (1,4)" in selection query.


This seems like an obvious tool that ArcMap should have but it does not exists (to my knowledge) as a geoprocessing tool. Splitting polygons can be done in edit mode but not straight out of the box in a mass automated way.

Do you think you are the first person to have ever wanted to split a polygon in half...no! When you are using ArcMap and you think of such a process then someone else has almost certainly done it before. So you should be heading over to the community driven website codesharing.

It takes about 5 seconds to type in some choice keywords and you find the Split Polygons using Line features tool which you can download for free.

Need to create those bisecting lines then I have personally uploaded the Create Lines By Bearing tool but this relies on you having a centroid dataset which easy to create from your data or searching the codesharing website you can find the Polygon Bisector tool.

Note some of these tools require advance license level which you do not state if you have in your question (you should always do that, including version of ArcMap).

With these tools you will be able to split your hexagonal polygons in half.