Create a solid joining multiple planes

Hello all,
I am trying to carve out a series of “columns” from a box volume.
All these columns are defined by base surfaces, all on different planes (all parallel).
My instinctive idea would be to extrude them all and then make a solid difference from the box.
However, that creates a lot of intersecting faces which grasshopper (or rhino) can’t deal with.

Any idea what I can do ?

Move the base surface to the z value of the top surface from the box, extrude them with your „height - moving vector length“