This has been something I have wanted in all the 3D HVAC systems I have used in the past. The ability to lock the main run of duct / pipes or anything from automatically altering when working on a sub branch and so on down the tree.
A number of possible solutions could be put in place to make this happen; a simple check box in the modify duct / pipe / conduit / containment dialog box to make the part’s location fixed in either x / y / z coordinates.
Use parenthood relationships so the main branch is the parent and the sub branches are the children, children can not move the parents but parents can move the children (I think this was used in 3D Studio Max?). A pop up confirmation box could allow over righting the rules to allow some flexibility and control but at least this would allow changes to the main ducts further up the system not go unnoticed.
The third option is to use constraints within in the model drawing, after drawing the length of duct you could then set a constraint for say top of duct to be a maximum ‘x’ distance from FFL (Finished Floor Level) or minimum from USS (Under Side of Slab). The other advantage of using constraint dimensions within the drawing would be that pipe / duct runs could be constrained to each other. In real life the fitters try to install pipe runs with a centre to centre dimension of 125mm because that’s the centre distance of the holes in standard Unistrut. Therefore it would be nice to be able to draw the pipes in at this 125mm offset and then constrain them to stay at that distance so when the bank of pipes has to be moved they don’t have to be move individually via stickymove when you move one the rest follow.
These features would eliminate the unfortunate occurrences when editing a section of duct / pipe and unknown to the editor a section is effected and moved in either x / y / z coordinates elsewhere in the model.