If you have a linestring below/above a surface, and use "DrapeObjectsOnSurface" you will get the a draped line that follows the contours of the surface.
If you then "Explode" this draped line, it will become a polyline with the same horizontal properties as your original linestring, but with the elevations of the surface - and you can then play around with it.
I haven't used the "Elevate Lines" command, but from what I see, basically it will change the vertical properties of the linestring based on text labels, points, intersecting lines etc within a certain horizontal tolerance.
For example, if you select points and a offset tolerance of 1m, your linestring will gain the vertical properties of the selected points that are within 1m of your original linestring.