Hi paulmartec,
if you have a Shape Polygon s whose volume you want to measure then if you define:
volume = s.volume(level='bestfit')
then volume['above'] will contain volume above best fit plane in m3 (without e notation), volume['below'] volume below best fit plane in m3 and volume['total'] total volume for best fit plane in m3 as in:
print(s, volume['above'], volume['below'], volume['total'])
2021-06-27 21:11:33 <Shape '2'> 2056251.7184415376 2429.595013802989 2053822.1234277345
see attached example