OK, after a little research and some consulting with our Assembly modeling and architecture prople, we've come up with something which might give you what you're looking for.
First let's look at how the parts in my little example assembly interact with each other right out of the box.
Open the example assembly with the Load Options set with 'Partial Loading' toggled OFF (in other words, the parts will be fully loaded).
Make the so-called source part (named 'working.prt') either the Work part or the Displayed part and then do a...
File -> Save As...
...and enter a new name for the file (if the system asks about a new name for the assembly you can either give it a new name well or just hit cancel and it will continue without renaming the assembly). Now go back and make the 'electrode_1_working.prt' the displayed part and look at the Expression dialog and you will note that the interpart expression has been automatically updated to reflect the new name of the part file which was originally named 'working.prt'. What has happened is that since both the part file which was referenced and the part file doing the referencing were open in the same session, changing the name of referenced part automatically updated the interpart expression in the referencing part so as to keep the relationship valid. Of course you will still need to do a save operation on 'electrode_1_working.prt' to save these changes but you did not have to do this manually as long as you follow this workflow.
Now how can this behavior be leveragd to solve your problem of having template electrodes which could link to any new 'working' part?
OK, this is one way:
First create a dummy model representing the 'working' part file with the proper expressions and attribute as seen in my exmaple 'working' part. It does not need anything else in it. Give it some generic name as a place-holder.
Now design your electrode templates like my example with the proper interpart expression and attributes and so on with the interpart expression linked to this dummy part.
Now build your assembly using whatever electrode templates that you wish (I assume that you may have more than one each linked to a common 'working' part) and include in that assembly you dummy 'working' part and save it.
Now using the dummy 'working' part as you design template, open it (BUT DO NOT RENAME IT) and model whatever it is that you're going to be WORKING on, setting the HEIGHT attribute to whatever you need it to be and save it (you'll probably want to keep an extra copy of the 'working' part in some place where it's safe and where you can get a copy anytime that you need to perform this process).
Now open your assembly, move everything around where you want it, or if you're building it from scratch, fine as long as you have added the 'working' part (with it's dummy name intact) and your electrode parts so that they are all fully loaded. Now make the 'working' part the work part and do a save as and give it the actual name that you would like it to be and then save your assembly and perform the 'updates' and you should be good to go (remember to delete the original modified 'working' part that you added to the assembly before you renamed it, remembering that you still have that safe copy stashed away for the next time when you just repeat this process).
Anyway, this should allow you to create as many electrode templates as you wish, linking them all to the same dummy 'working' part and then use the workflow decribed above to link and update them all to a new 'working' part for each one of your projects.
And I also hope that this helps show you how powerful and useful the NX architecture is when doing some of these interpart tasks, even the ones which does not rely on WAVE. Interpart Expressions are almost as old as expressions themselves and are still very useful even today where we can pass text strings as well parametric values.
So give it a try and let me know what you think.
John R. Baker, P.E.
Product 'Evangelist'
Product Design Solutions
Siemens PLM Software Inc.
Industry Sector
Cypress, CA
To an Engineer, the glass is twice as big as it needs to be.