Typically what we do is copy our EG surface and lower it 3', or whatever it is for the specific utility. Then create pipe networks out of feature lines or polylines, and assign it elevations from the surface.
The problem with doing it that way (with pipe networks), for me at least, is when I have many utilities, the drawing size grows substantially, and there are too many pipe networks to manage efficiently. They can only be created one at a time, then they need to be named, displayed correctly, etc.
I love the fact that using pipe networks the display and labels on the profile update automatically when the alignment is changed. The problem that I'm running into however, is that this process of setting them up is too time consuming, and slows down the drawing enough that the time saved is negated by the slowdown in opening and editing files. It is faster to draw them manually and then update them manually when the profile changes.
I like the idea of using feature lines for this, or just profile labels. I will try those and see how they work out.
Just a note. This is for utilities where we are assuming a depth, for us that is usually gas, power, telephone, cable, etc. For sewer and storm drain, that we usually have invert depth on, pipe networks have been working well for us.
It would be nice if there were a dumbed down version of pipe networks that we could use for other dry utilities.
I know this was labeled as solved, but I wanted to add another method that I use.
I create POINTS in my dwg where in plan view, the symbol that shows up on screen is just a small circle that is on defpoints and then I edit the point raw description to be what I want the label to read in profile. I have several point styles created that are just blocks of ovals for different pipe sizes for profile view.
Then I project the point to my profile view and apply the proper projected style for the pipe size.
The attached file shows the point description that matches the label and the point display in plan view. the good thing about using points is that you can export/import points to other files for use. the project displayed in my image had well over 100 crossings.