I'm not sure if you can do this with dot net but there is a function to get the intersection of two surfaces in poly lines. Then you can use them as boundary for the volume surface, so you get the upper part only. Or do I not understand the question?
Volume surfaces are always the difference, calculated from zero elevation, not a base elevation.