InExcludeData.InsertObject(...) still not working?

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 09/03/2011 at 05:52, xxxxxxxx wrote:

Hi,

it may be true that InExcludeData.InsertObject( pObject , lFlags ) is still not working in python?
Because it did nothing when i used this function.
It there a trick i have to use to get this working?

Thanks for any advices.

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 09/03/2011 at 06:15, xxxxxxxx wrote:

I already used it. Take a look at this script here:

http://forums.cgsociety.org/showpost.php?p=6886222&postcount=5

Cheers, nux

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 09/03/2011 at 06:46, xxxxxxxx wrote:

My fault. Now, it works.

I thought this should be working, because my userdata is an InExcludeData.
op[c4d.ID_USERDATA,3].InsertObject(obj,0)

but that is a right way:
_
objList = c4d.InExcludeData()
objList.InsertObject(obj,0)
op[c4d.ID_USERDATA,3] = objList_

Thank you very much, nux! 🙂

On 20/08/2017 at 02:58, xxxxxxxx wrote:

this is odd, not?

this is not working:
op[c4d.ID_USERDATA,3].InsertObject(obj,0)

but this is working:
objList = c4d.InExcludeData()
objList.InsertObject(obj,0)
op[c4d.ID_USERDATA,3] = objList

in my opinion op[c4d.ID_USERDATA,3] is already a c4d.InExcludeData()
so op[c4d.ID_USERDATA,3].InsertObject(obj,0) should work, not?
what is wrong here?

On 21/08/2017 at 03:24, xxxxxxxx wrote:

Hi,

The [] operator returns a copy of the InExcludeData user data. So you have to retrieve it and set it back after modification.
Instead of creating a new InExcludeData you can do:

objList = op[c4d.ID_USERDATA, 3]
objList.InsertObject(obj, 0) 
op[c4d.ID_USERDATA, 3] = objList