Active Objects - Change attributes



  • On 03/06/2017 at 19:51, xxxxxxxx wrote:

    Hello!

    I'm trying to change some attributes from a different objects at the same time, in this case I'm trying to change "use color" and "display color" attribute for testing with that.

    When I use the code with one object works fine but if the object have some children objects the console shows me "IndexError: list assignment index out of range" but I don't understand why, because I've use a GetActiveObjects with a c4d.GetActiveObject_Children flag.

    I need to get the entire objects selection with other way maybe? Here is the code:

    import c4d
    from c4d import gui
      
    def geo_color() :
        doc = c4d.documents.GetActiveDocument()
        #activeObject = doc.GetActiveObject()
        activeObject = doc.GetActiveObjects(c4d.GETACTIVEOBJECTFLAGS_CHILDREN)
        
        #List of selected objects
        print activeObject
        
        #geo color actions
        activeObject[c4d.ID_BASEOBJECT_USECOLOR]=2
        #cdlg = c4d.gui.ColorDialog(1)
        #activeObject[c4d.ID_BASEOBJECT_COLOR]=cdlg
      
        #update scene
        c4d.EventAdd()
       
     
    if __name__=='__main__':
        geo_color()
    

    Thanks!



  • On 04/06/2017 at 00:10, xxxxxxxx wrote:

    Get activeObjects return you a list of BaseList2D So you have to iterate throught this list basicly do

    import c4d
      
    def geo_color() :
        doc = c4d.documents.GetActiveDocument()
        activeObjects = doc.GetActiveObjects(c4d.GETACTIVEOBJECTFLAGS_CHILDREN)
        #If we get nothing select we quit
        if not activeObjects:
            return
      
        #Loop through the content of activeObjects and call each element of activeObjects obj
        #obj are BaseList2D so we can set their value
        for obj in activeObjects:
            obj[c4d.ID_BASEOBJECT_USECOLOR] = 2
      
        # update scene
        c4d.EventAdd()
      
      
    if __name__ == '__main__':
        geo_color()
    


  • On 12/06/2017 at 14:54, xxxxxxxx wrote:

    Thanks! That's make sense.


Log in to reply