Here is the scenario: Assy. C contains Assy B. Assy. C is open read only. Assy. B is opened from C and modified by adding a part. Assy. C is changed to writeable using reload. Upon reloading Assy. C, Assy. B is also reloaded removing the changes to it. This does not seem right. Changes to a top level assembly shouldn't cause a lower level assembly to change or reload. Had assy. B been saved prior to reloading assy. C this would have gone unnoticed.
I think the problem is the reload - When you ask Assy C to to reload, it's going back to all reference documents last saves and doing what your asking - "Reloading" them. Why, if you don't mind me asking, can't you simply right click menu on Assy C and click "get write access" on your read-only part? This will change assy c from read to write, and then you simply save all...(Unless I'm missing something in your post.... Scott
If you make assembly B read only, after alterations and before reloading assembly C, and deny the overwrite on assembly B when questioned, you should get what you require.
In my way of thinking an upper level assembly should not require changes in a lower level assembly. I am on 2004 so the get write access option isn't there. I coult have "saved as" the C assembly at the risk of overwriting someone else's work. Reload is just for the active document. This is what the Help says should happen: Allows you to Reload documents. This is useful if you have read-only access to a document and you want to reload the latest version with any changes made by a colleague. Notice that it uses the singular when explaining the object of the action. And there are no apparent external references.