I've done it a few times, and it was never a "quick" process. We typically added the new data in batches starting with Library and Content Center parts (because they get used "everywhere" and don't typically break any "Released data = no editing" rules), then current "live" projects, and finally legacy projects. You can use Task Scheduler, but I found it painful finding and fixing the failures.
Editing/updating anything already in a released state as the power to unleash some spectacular demonstrations of anger and indignation in a design office... I'd support the idea that two drawings of the same revision showing different information is bad (and therefore you could argue that changing legacy released designs is pointless). But luckily that's not my problem!
- Add the new iProperty to any file (and check it in if you like - the next step works on models inside or outside Vault)
- In Vault, create a user defined property (UDP) and map it to the iProperty created above. During the mapping, make sure to select "Yes" in the create column. Exact process is outlined here.
- Use Vault's Search to find all files needing the new iProperty information. (I'm guessing it will only be files of a certain category or type.)
- Use Vault's Edit Properties to populate the data.
If you are going to edit released data, make sure you have a dedicated Vault user profile with those permissions.
Where the property is a concatenation of data or other iProperties, you can copy/paste the information you already have into Excel (multi-select works from the Edit Properties dialog). Do your data manipulation there to create the new property - then paste the entire column straight back into the waiting Edit Properties dialog.
If you break it down like that, you know you will have captured all "work in progress" with your first pass, and depending on your bravery, legacy data will follow. Since the new iProperty is now mapped in Vault, you can create a saved search to report any missing properties and fix those up when you have time.
The other process simply involved an external iLogic rule run "Before Save" which checks all the required iProperties are present before saving. The same rule can add the missing iProperty. The only downside to this approach was that the new property would only appear on edited files, which meant the new iProperty was slow to propagate through the data, and it didn't touch anything legacy (which pleased some people immensely!).
Peter