I had to do this not too long ago. Ugh. I've already reported the problem with formal request for feature to get such data.
You can approach it from a few different angles. In my case I needed to write an exporter to dump the scene to a file, plus the override information as deltas relative to the default pass to minimize the amount of data in the file. I started in the default pass and built a map recording the material - object/cluster relationship to act as a lookup table. I then iterated through the override properties in the other passes to find what was overridden. Each time I encountered an overridden parameter, I did the reverse lookup into my map to find the original material assigned to the object/cluster and did the 'diff' to determine if the overridden parameter's value changed. If so, it was dumped to file. The main bottleneck was waiting for Softimage to update the scene when switching passes. Unfortunately that was necessary as the SDK only provides override information in the current pass. Matt From: softimage-boun...@listproc.autodesk.com [mailto:softimage-boun...@listproc.autodesk.com] On Behalf Of Vladimir Jankijevic Sent: Wednesday, June 05, 2013 5:32 AM To: softimage@listproc.autodesk.com Subject: SDK: Find out if material is locked by Override Hello List, I thought this would be easy but I didn't find anything in the docs so I thought i may ask here if someone has a clever solution for my problem. If we create an Override which overrides a parameter on a material, Softimage automatically generates a copy of that material in question and assigns it to the object which previously had the original material applied. Now in the explorer, we can see that the original material has an annotation on it saying '<Locked by Override>' and the duplicate has one saying '(LOCK) <Created with Override>'. My question is, how can we find out that the original material has been locked by an Override within the SDK? I tied everything that is known to me with no luck. It seems that the automatically generated material has a lock and can be tested for that by LockType, isLocked and LockLevel. But the original one shows no sign of anything locked going on with it. It even isn't assigned any more and UsedBy returns an empty collection. Not even the parameter that got overridden is detectable as such. I can't find any connection between the original material and it's copy originating from the master material. Sure, when I can get hold of the duplicate, I can find the original one but not the other way around. I would be glad for any suggestions regarding this problem. Otherwise I'm going to log this as a Improvement request. Thanks guys (and gals :) ) Vladimir -- --------------------------------------- Vladimir Jankijevic Technical Direction Elefant Studios AG Lessingstrasse 15 CH-8002 Zürich +41 44 500 48 20 www.elefantstudios.ch<http://www.elefantstudios.ch> ---------------------------------------