I usually handle this in my gravity code. I place the origin in the center of my model, and then trace from its origin to about 2-3 quants below its min_z value. If the result of the trace ends within the model, I move the model up. Heres an image, hope that helps in some way.