Move an object while connected tubes "follow" it, automatically stretching and shrinking
While I don't see a way to automatically detect collisions, I expect some things can make your task fairly easy.

The first task of placing an object within a modelled room is easy. You can use snapping to place a mount point onto the wall. then by 'locking' the right axis of each wall mount you can easily move the mounting around the wall and have it stay on the surface, a small adjustment can be made to transfer it to another wall.

Curves are defined by a number of control points. By adding a bevel to the curve they become "tubes" that automatically flow between each point.

By using hooks each control point can be moved while the tubing adjusts to suit. One end of each curve can be hooked to the wall mount, the other end to the object, and then a simple empty can be used to adjust each point in between. Instead of using hooks for each control point you vould edit each curve manually.





In the following example that I created for the previous screenshots, I have two curves, that go from the wall to a fume extractor. Each curve has two control points to adjust how it flows from the wall to the extractor. For easy viewing the building is set to always draw in wireframe.

To use, you place the mounts on the wall, then position the extractor and then adjust the curves to flow nicely between the two.



While I have used a nurbs path in this example, you can also use bezier curves to get more control over where the curve goes to and how sharply it bends at each point.