Collect Wirecolors into Diffuse Materials
This is the script I've built to fix FBX imports from Navisworks & the mass duplicated materials. Optionally it will also split them out to layers based on object wirecolor.
Majority of the code for the main function comes from http://www.scriptspot.com/blog/capitanred/collectbywirecolor
I'm using it in my workflow to effectively 'collapse' duplicate materials when bringing in an FBX. It's the last step shown in my video here: https://www.youtube.com/watch?v=VxmDA0NdWT8
It goes through your selection, collects an array of the unique wirecolors, and then creates a material for each unique wirecolor and assigns it to those objects.