Packing geometries in a surface with constraints

Hello everyone,

I am new user of dynamo for rrevit and I want to generate several locations for a set of equipment in a surface for which I have the “dimensions” (in 2D) with distance constraints between the equipment, I would like to know if there is a dynamo package that allows me to do that.
I tried to use refinery toolkit but it only works with rectangles and it doesn’t allows me to specify constraints (like defining a distance between one piece of equipment and another in the surface)
Is there a package that allows to pack equipment of different geometries and define the distances between the geometric shapes ?
Thank you for your help !
image

I’m certainly not an expert on this but…

Have you thought about using Curve.OffsetMany or PolyCurve.OffsetMany on the rectangles prior to packing. Then after packing do a negative offset back?

If the distance constraints are not all the way around you could probably use the Geometry.Scale (x,y,z) to stretch and then stretch back.

The original objects might be able to be distilled down to rectangles and then using coordinate transformations you could probably align them to the packed coordinate locations.

If there is no way to make rectangles work at all, possibly the below package would do something different but I know nothing about it and it looks a little old so I’m not sure if it is still supported: GitHub - thomascorrie/Miscellany: A collection of miscellaneous nodes for Dynamo