Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
On 05/10/2017 at 11:58, xxxxxxxx wrote:
I'm trying to create a null and add it to an in/exclusion list. The list is in the user data of an xpresso tag. This will be run off of a script. I have this code so far:
import c4d from c4d import gui, utils
def main() : document = doc tagowner = doc.SearchObject('StageLightMaster') xtag = tagowner.GetFirstTag() LinkList = xtag[c4d.ID_USERDATA,1] NullMaster = c4d.BaseObject(5140) document.InsertObject(NullMaster) LinkList.InsertObject(NullMaster,1) c4d.EventAdd() if __name__=='__main__': main()
I can run a count before and after the object is added and it seems to be running properly, but when I go to the list in the tag it is not updated to include the null. I read somewhere that I need to update the gui object for the changes to take place, but I'm not sure how to call it. Any help is greatly appreciated! Thanks!
On 06/10/2017 at 02:05, xxxxxxxx wrote:
Add
xtag[c4d.ID_USERDATA,1] = LinkList
Before your EventaAdd().
If we go step by step in your program here is what happend.
mport c4d from c4d import gui, utils def main() : #Get the obj document = doc tagowner = doc.SearchObject('StageLightMaster') #Get the tag xtag = tagowner.GetFirstTag() #Get a copy in memory of xtag[c4d.ID_USERDATA,1] LinkList = xtag[c4d.ID_USERDATA,1] #Create in memory a new object an copy it to NullMaster NullMaster = c4d.BaseObject(5140) #Insert The the object into the document document.InsertObject(NullMaster) #Insert the object into your linklist variable which is a copy in memory of the userdata LinkList.InsertObject(NullMaster,1) #Trigger an event c4d.EventAdd() if __name__=='__main__': main()
So as you see you only change value on memory so you need to push back into the object
Hi and Welcome to the Plugin Cafe forums!
LinkList in your script (retrieved with xtag[c4d.ID_USERDATA,1]) is a copy of the actual in/exclusion user data. So it has to be assigned to xtag[c4d.ID_USERDATA,1], after inserting the null object, for the in/exclusion user data to be updated in the GUI.
On 06/10/2017 at 05:40, xxxxxxxx wrote:
Well you guys are just awesome! Thanks for explaining the logic behind the solution this helps me out tremendously.