This isn't an out of the box solution. I had a customer ask for this to be programmed.
The basic code base is this: http://through-the-interface.typepad.com/through_the_interface/2006/11/linking_circles_1.html Plus a crap ton of extra **** I needed to do because of Civil 3D. Mainly to prevent crashes and make sure I wasn't slowing down the drawing a ton.
I start by collecting the pipe runs based on how close they are to an alignment. So if they are within 1 foot of the alignment (on both ends) and they are in the profile view then they belong to the alignment. I then take all of the pipes and use the end points as the location of a PI. When the user moves a structure this moves the pipes. This is where the hard part is. Because you then need to find the correct alignment segment and move each end of the appropriate PI to the correct location. My code doesn't work in all cases because sometimes it guesses wrong and the alingment goes haywire. I guess if I did it again I'd collect all of the segments and then put them in order again, but I wan't to avoid doing that for fear of slowing civil 3D down. Also segments don't have their own identity, so it makes it harder to track. For most of the moves though it's not hard to do. The code also looks for new pipes and structures that should join the party based on the connections to structures. That way I'm not checking every pipe in the drawing, just the ones that might belong. So if a pipe gets broken, the pipe the original pipe is already part of the party and I check if the new pipe belongs and it usually does and gets added to my party.
A profile is also created in much the same manner except there is a calculations to for the PVIs to be at the outside (or inside) wall of the structure. Round structures are easy, the rectangular pipes are a bit harder.
Unfortunately I haven't asked to share it with the rest of the world, and I'm not sure they would want to considering their investment into it. It as after all a productivity advantage. That's not to say I couldn't program it again for another person.
Civil Reminders
http://blog.civil3dreminders.com/
http://www.CivilReminders.com/

Alumni