Update:
Заглубления можно вычислить, если у трубы задана ссылочная поверхность. Для её определения нужно смотреть свойство RefSurfaceId.
У трубы есть такие свойства: MaximumCover и MinimumCover. Они показывают соответственно максимальное и минимальное заглубление верха трубы по наружному диаметру (тут могу ошибаться, надо перепроверить) от ссылочной поверхности. Это может быть в любой точке трубы, не только в конце или в начале. Поэтому, большого практического смысла в этих значениях нет.
Теперь, что касается вычисления отметок поверхности.
У колодца есть свойство SurfaceElevationAtInsertionPoint, поэтому, можно просто брать это значение, если на конце трубы есть колодец (см. свойства StartStructureId, EndStructureId). Конечно же, если ссылочные поверхности трубы и колодца совпадают. Если же колодца нет, то надо открывать на чтение ссылочную поверхность и применять метод FindElevationAtXY. У него есть одна неприятная особенность - если точка окажется вне поверхности, то возникает исключение. Поэтому, надо либо отлавливать исключение, либо проверять попадание точки в границы поверхности.