Generate solids or volumes with for ex max 250 cubic meters?

I received a question from a colleague that has done environmental investigations of an area. From the investigation he’s got a top and datum surface that he used to create a volume surface.
Then he wanted to divide the volume surface into smaller pieces with a max volume of 250 cubic meters and he asked for a function to create those pieces.

As a “Dynamite” I always try to find a solution incorporating Dynamo and maybe generative design, but I think that generative design only works in 2D?

Before I start to try something out, will it possible using Dynamo?
He sends me the example shown in the picture below as an example of how they could be divided.

2 Likes

Nah - I do recommend utilizing abstraction in all cases though.

I don’t quite understand the question or the context (I.e.: surfaces are inherently 2D objects in a 3D space meaning they contain area only - there is no volume of a surface; so I am guessing this is one of those things made up for civil use cases). Is the intent to segment a 3D solid into smaller parts having equal volumes that approach but do not exceed a given value?

If so, what are the ‘rules’ for dividing that shape?
What are the original limits thereof?
Are there reasons to ‘stop’ a shape at a given value in advance of the geometry?

One thought I had: voxelize the solid into voxels of a given dimension (and therefore volume). Perform a solid fill operation to get a maximum number of voxels, remove those voxels, grab the next voxel and repeat the process until you’re out of voxels… wouldn’t necessarily be as ‘neat’ as what you have there, but it would be a valid segmentation.

1 Like

Yes, that is correct the surface has no volume. I was thinking about to use a solid created between top and datum and then splitet up but maybe I should try to voxilize it.

But if I can have a voxel within the size of one cubic meter or maybe just 0.5 cubic meter it will be pretty close anyway.

Exactly. I would start at 10 meters (and grabbing 25 voxels per segment) and go from there. :slight_smile:

1 Like

Feels like a stupid question but how do I set a specific size of the voxel? Is it possible to make it within the size of a cube with dimension 1x1x1 (width, length, height)?