Hi Haz,
Thanks for the post. Yes, in-place symbol (and product) substitution does come up as a request from time to time, and while what you describe appears, initially, a fairly simple proposition we have been reluctant to introduce such a feature because it is fraught with potential pitfalls that could introduce errors into system designs that would be hard to spot and rectify.
Let's assume we have a Block Schematic drawing which contains many symbols which are connected with cables i.e. a totally normal scenario. In the Symbol Editor you are able to change anything you want in a symbol. For a very limited change, like updating the Manufacturer or Model Number labels there's no problem because this does not affect the size, shape or layout of the symbol.
But, in the following cases symbol substitution would create errors for existing cable connections:
- If you move or delete IOs that are connected in the drawing.
- If you change the width of the symbol.
- If you change the position of the symbol or IOs relative to the insertion point.
And of course because the symbol doesn't know anything about its use in drawings there is no way to flag potential problems when editing the symbol.
So, in all but a very, very limited number of scenarios the automatic substitution of symbols (and products) will introduce errors into the design in terms of positioning and connections that would ripple through drawings and outputs like the Cable Schedule, and these errors, as I mentioned, would be very hard to spot, especially if, as you say, the substitution is applied across multiple drawings in the project.
We feel, therefore, that the unavoidable risks of such functionality significantly outweigh the reward.
Today you can update a UDP symbol and for each instance of that UDP in a drawing simply delete it - it will return to the Available Symbols Palette - and then drag it back into the drawing from the Palette. This will utliize the updated symbol and allow you to position it correctly in relation to pre-existing connections, assuming your edits are not of the listed 'error condition' types.
I hope this helps to explain why symbol/product substitution is not part of the arsenal, and how you can achieve what you need quickly and easily on a symbol-by-symbol basis.