I see it that every object has a (possible) property, called Material, which is a link to a Material object. This Material object should be extensible using Python Property's since every user will have different requirements or would like to add different material properties.
I think the default behavior would indeed be to automatically rename the Name as is done now as well when creating new objects. When in the MaterialWorkBench I would like to be able to drag and drop a material on an object, or be able to make a selection and apply that material. This is quite straightforward. The most important thing to have first, is a Material property in those objects, so we can actually start implementing these thingsAt some point it could become useful to have some way to manage the materials of a document. I think for example, if you have a document which contains objects with a steel material, and you merge into it objects from another document which also have another steel material defined. I suppose we're going to define some default behaviour, for example rename the imported one as steel001. After a while, you'll want to see all the materials in your document, and clean up, rename, reattribute, etc. That might be a primary task of a materials module, reorganize materials and edit their contents... How do you plan to store the materials information? For example if I have 2 objects, each one with a steel material. Will each object store a complete copy of that material? Or will their material property actually link to another structure, so both objects can link to the same material?
I see it that the Materials are objects themselves, and thus they can be linked to by many other objects.
I suppose you mean that you can see from the colors which material is applied? I would love such a feature and would definitely reuse that kind of code since I need it for my SEA module to show the acoustic temperature and vibration levels.What about individual surfaces/faces? Is there any way a special surface finish (color or other mechanical/optical property) can be applied?