Divide irregular shape into equal parcels

Hi there - I need to divide irregular shapes into parcels of equal area. For example the attached shape needs to be divided into 10 parcels all of the same area. Parameters could be set - all dividing lines are horizontal.

The shape is a 2d closed polygon.

Is there a way to do this?

Many thanks for your help.

No with core Rhino tools.
My guess is this could be done with scripting or Grasshopper.

I think this would be a good example to do in Grasshopper with Galapagos (evolutionary/iterative solver).


That seems like an appropriate approach. Although I had never actually used it before, I just had a quick go at implementing Galapagos for subdividing an irregular polyline into “even-area” Voronoi cells:

The values indicate cell area, as you see it gets pretty close. Obviously this definition does not take into account the horizontal constraint you describe (didn’t catch that on the first read). But perhaps the file can help you get the ball rolling, note that I basically winged it: EvenAreaVoronoiCellsWithinPolyline.gh(11.8 KB)



Hi Marty,

I took the challenge and wrote this script to divide planar closed curves, into equal area parts (within a relative tolerance). Sections are in a direction set by the user.

The scripts are offererd as-is so make sure to double check results for critical applications.

When you run the script, check the commandline to set parameters.

To run the script download and save this file: DivideShapeInEqualParts_NoAlias.rvb(4.9 KB)
Drag and drop Over a running instance of Rhino
The script above will then run only once.

To let it create an alias, save this file:DivideShapeInEqualParts.rvb(4.9 KB)
Make sure you save it at a safe place where it can remain, as the registered alias refers to that location. The script will create an alias equal to the file name; “DivideShapeInEqualParts”

I am curious about why you need this functionality? Can you tell me what the purpose of this equal partitioning is?



Hey there. Big thanks for the responses. Its great to have a couple of options to explore at this stage and both approaches, Anders and Willem are helpful at this stage.

I’m simply looking at site division. From hunting around there is surveying specific software that can do this kind of thing. However I thought, having a basic familiarity with rhino, it would probably be flexible enough to do the operation natively, with a script or a plugin.

My thanks again. If I run in to some problems i’ll make a post.


Thanks again - both options have been really helpful.


Hi Anders, I’m working on a site that i would like to divide in 30 equal parts. In your definition, how you control how many cells in the result? I tried the gene pool, setting 30 lines and one time with equal intervals between numbers and other time with ramdom numbers, but can’t get even area cells. How do I set the values for the Gene Pool, in order to get even area cells result? Thank you!

hello, matues.
could you solve the problem? i m in same problem. so if you solved the problem can you let me know too