Save All Materials



  • On 22/08/2018 at 06:51, xxxxxxxx wrote:

    Hi everyone,

    I'm trying to save all of the project materials into a .c4d file?
    This will be inside a CommandData plugin and unfortunately can't find a way of saving only the materials.

    Does anyone have a way of dealing with this?

    Thank you very much! 🙂



  • On 23/08/2018 at 07:16, xxxxxxxx wrote:

    Hi,

    the goal is a C4D scene file containing only the materials of a scene, right?

    The idea is to clone the needed materials into a new document, which then saved in the end.

    The simplest approach could look like so (although it reverses the material order) :

        doc = c4d.documents.GetActiveDocument()
        newDoc = c4d.documents.BaseDocument()
        mat = doc.GetFirstMaterial()
        while mat is not None:
            newDoc.InsertMaterial(mat.GetClone(c4d.COPYFLAGS_0))
            mat = mat.GetNext()
        c4d.documents.SaveDocument(newDoc, 'C:/Users/Andreas/Desktop/test_all_materials.c4d', c4d.SAVEDOCUMENTFLAGS_0, c4d.FORMAT_C4DEXPORT)
    


  • On 23/08/2018 at 07:57, xxxxxxxx wrote:

    Hi Andreas,

    It was wrecking my brains and is actually quite simple! 🙂

    Thank you very much for that!