Re: Persistent objects ids

2013-06-04 Thread Sandy Sutherland
Create an annotation and write a ID into that - we used that in our 
asset system, worked fine for us.


S.

On 2013/06/04 12:49 PM, Michal Doniec wrote:

Hi,

Is there any obvious way I am missing which would allow me to identify 
objects in the scene, but not by name?
Something like ObjectID, but persistent between scene saves and 
loads. I can generate UUID or something similar using "ObjectAdded" 
event and store custom property but I'd rather avoid it.


I want to be able to track objects regardless if they were renamed or not.

--
--
Michal
http://uk.linkedin.com/in/mdoniec




Re: Persistent objects ids

2013-06-04 Thread Michal Doniec
That's what I've been doing (I use properties instead of annotation but the
principle is the same), maybe there is no need to change after all :)


On 4 June 2013 12:52, Sandy Sutherland  wrote:

> Create an annotation and write a ID into that - we used that in our asset
> system, worked fine for us.
>
> S.
>
>
> On 2013/06/04 12:49 PM, Michal Doniec wrote:
>
>> Hi,
>>
>> Is there any obvious way I am missing which would allow me to identify
>> objects in the scene, but not by name?
>> Something like ObjectID, but persistent between scene saves and loads. I
>> can generate UUID or something similar using "ObjectAdded" event and store
>> custom property but I'd rather avoid it.
>>
>> I want to be able to track objects regardless if they were renamed or not.
>>
>> --
>> --
>> Michal
>> http://uk.linkedin.com/in/**mdoniec 
>>
>
>


-- 
--
Michal
http://uk.linkedin.com/in/mdoniec


Re: Persistent objects ids

2013-06-04 Thread Alan Fregtman
At work I use a topology hash which I base off a string composed of either
boundingbox and component counts, or if there's collisions from similar
objects, the whole position array in local space.

I use SHA1 for the hashing as it's a teensy bit faster to compute than MD5,
but both of those have known to have had collision flaws, so ideally one
should use something fancier.

As long as the topo stays the same, it makes it super easy to track renamed
meshes or whatever.



On Tue, Jun 4, 2013 at 7:57 AM, Michal Doniec  wrote:

> That's what I've been doing (I use properties instead of annotation but
> the principle is the same), maybe there is no need to change after all :)
>
>
> On 4 June 2013 12:52, Sandy Sutherland  wrote:
>
>> Create an annotation and write a ID into that - we used that in our asset
>> system, worked fine for us.
>>
>> S.
>>
>>
>> On 2013/06/04 12:49 PM, Michal Doniec wrote:
>>
>>> Hi,
>>>
>>> Is there any obvious way I am missing which would allow me to identify
>>> objects in the scene, but not by name?
>>> Something like ObjectID, but persistent between scene saves and loads. I
>>> can generate UUID or something similar using "ObjectAdded" event and store
>>> custom property but I'd rather avoid it.
>>>
>>> I want to be able to track objects regardless if they were renamed or
>>> not.
>>>
>>> --
>>> --
>>> Michal
>>> http://uk.linkedin.com/in/**mdoniec 
>>>
>>
>>
>
>
> --
> --
> Michal
> http://uk.linkedin.com/in/mdoniec
>


Re: Persistent objects ids

2013-06-04 Thread Michal Doniec
Interesting idea Alan - thanks for this. Can't apply it to
this particular thing I am doing now (topo, or anything can change), but
I'll save it for the future.


On 4 June 2013 15:25, Alan Fregtman  wrote:

> At work I use a topology hash which I base off a string composed of either
> boundingbox and component counts, or if there's collisions from similar
> objects, the whole position array in local space.
>
> I use SHA1 for the hashing as it's a teensy bit faster to compute than
> MD5, but both of those have known to have had collision flaws, so ideally
> one should use something fancier.
>
> As long as the topo stays the same, it makes it super easy to track
> renamed meshes or whatever.
>
>
>
> On Tue, Jun 4, 2013 at 7:57 AM, Michal Doniec  wrote:
>
>> That's what I've been doing (I use properties instead of annotation but
>> the principle is the same), maybe there is no need to change after all :)
>>
>>
>> On 4 June 2013 12:52, Sandy Sutherland  wrote:
>>
>>> Create an annotation and write a ID into that - we used that in our
>>> asset system, worked fine for us.
>>>
>>> S.
>>>
>>>
>>> On 2013/06/04 12:49 PM, Michal Doniec wrote:
>>>
 Hi,

 Is there any obvious way I am missing which would allow me to identify
 objects in the scene, but not by name?
 Something like ObjectID, but persistent between scene saves and loads.
 I can generate UUID or something similar using "ObjectAdded" event and
 store custom property but I'd rather avoid it.

 I want to be able to track objects regardless if they were renamed or
 not.

 --
 --
 Michal
 http://uk.linkedin.com/in/**mdoniec 

>>>
>>>
>>
>>
>> --
>> --
>> Michal
>> http://uk.linkedin.com/in/mdoniec
>>
>
>


-- 
--
Michal
http://uk.linkedin.com/in/mdoniec


Re: Persistent objects ids

2013-06-04 Thread Ciaran Moloney
Hi,
did you try XSIUtils.DataRepository.GetIdentifier() passing the
siObjectGUID argument?
I've used this to keep track of ICE nodes without relying on name strings.
It's persistent between sessions and is preserved when models are exported.
Works like a charm.
The only problem is that it's possibly a bit tricky to get a pointer back
to the object, since you need to know what you're looking for. I use
Application.FindObjects()
to get a collection of objects of this class, then check for the ObjectGUID
I'm looking for.

Ciaran


On Tue, Jun 4, 2013 at 12:49 PM, Michal Doniec  wrote:

> Hi,
>
> Is there any obvious way I am missing which would allow me to identify
> objects in the scene, but not by name?
> Something like ObjectID, but persistent between scene saves and loads. I
> can generate UUID or something similar using "ObjectAdded" event and store
> custom property but I'd rather avoid it.
>
> I want to be able to track objects regardless if they were renamed or not.
>
> --
> --
> Michal
> http://uk.linkedin.com/in/mdoniec
>


Re: Persistent objects ids

2013-06-04 Thread Michal Doniec
No, i haven't, but this is what I was looking for, thanks a lot!


On 4 June 2013 16:52, Ciaran Moloney  wrote:

> Hi,
> did you try XSIUtils.DataRepository.GetIdentifier() passing the
> siObjectGUID argument?
> I've used this to keep track of ICE nodes without relying on name strings.
> It's persistent between sessions and is preserved when models are exported.
> Works like a charm.
> The only problem is that it's possibly a bit tricky to get a pointer back
> to the object, since you need to know what you're looking for. I use 
> Application.FindObjects()
> to get a collection of objects of this class, then check for the ObjectGUID
> I'm looking for.
>
> Ciaran
>
>
> On Tue, Jun 4, 2013 at 12:49 PM, Michal Doniec  wrote:
>
>> Hi,
>>
>> Is there any obvious way I am missing which would allow me to identify
>> objects in the scene, but not by name?
>> Something like ObjectID, but persistent between scene saves and loads. I
>> can generate UUID or something similar using "ObjectAdded" event and store
>> custom property but I'd rather avoid it.
>>
>> I want to be able to track objects regardless if they were renamed or not.
>>
>> --
>> --
>> Michal
>> http://uk.linkedin.com/in/mdoniec
>>
>
>


-- 
--
Michal
http://uk.linkedin.com/in/mdoniec


Re: Persistent objects ids

2013-06-04 Thread Alan Fregtman
How about with refmodels? I know ObjectID sometimes changes with refmodels.
Does this ObjectGUID suffer the same fate?



On Tue, Jun 4, 2013 at 11:52 AM, Ciaran Moloney wrote:

> Hi,
> did you try XSIUtils.DataRepository.GetIdentifier() passing the
> siObjectGUID argument?
> I've used this to keep track of ICE nodes without relying on name strings.
> It's persistent between sessions and is preserved when models are exported.
> Works like a charm.
> The only problem is that it's possibly a bit tricky to get a pointer back
> to the object, since you need to know what you're looking for. I use 
> Application.FindObjects()
> to get a collection of objects of this class, then check for the ObjectGUID
> I'm looking for.
>
> Ciaran
>
>
> On Tue, Jun 4, 2013 at 12:49 PM, Michal Doniec  wrote:
>
>> Hi,
>>
>> Is there any obvious way I am missing which would allow me to identify
>> objects in the scene, but not by name?
>> Something like ObjectID, but persistent between scene saves and loads. I
>> can generate UUID or something similar using "ObjectAdded" event and store
>> custom property but I'd rather avoid it.
>>
>> I want to be able to track objects regardless if they were renamed or not.
>>
>> --
>> --
>> Michal
>> http://uk.linkedin.com/in/mdoniec
>>
>
>


RE: Persistent objects ids

2013-06-04 Thread Matt Lind
This is not safe between sessions as IDs are dynamically generated and assigned 
in the order objects were created in the scene.  If an older object is deleted 
and the scene reopened, everything after it will have a new ID.

Matt



From: softimage-boun...@listproc.autodesk.com 
[mailto:softimage-boun...@listproc.autodesk.com] On Behalf Of Ciaran Moloney
Sent: Tuesday, June 04, 2013 8:52 AM
To: softimage@listproc.autodesk.com
Subject: Re: Persistent objects ids

Hi,
did you try XSIUtils.DataRepository.GetIdentifier() passing the siObjectGUID 
argument?
I've used this to keep track of ICE nodes without relying on name strings. It's 
persistent between sessions and is preserved when models are exported.
Works like a charm.
The only problem is that it's possibly a bit tricky to get a pointer back to 
the object, since you need to know what you're looking for. I use 
Application.FindObjects() to get a collection of objects of this class, then 
check for the ObjectGUID I'm looking for.

Ciaran


On Tue, Jun 4, 2013 at 12:49 PM, Michal Doniec 
mailto:doni...@gmail.com>> wrote:
Hi,

Is there any obvious way I am missing which would allow me to identify objects 
in the scene, but not by name?
Something like ObjectID, but persistent between scene saves and loads. I can 
generate UUID or something similar using "ObjectAdded" event and store custom 
property but I'd rather avoid it.

I want to be able to track objects regardless if they were renamed or not.

--
--
Michal
http://uk.linkedin.com/in/mdoniec



Re: Persistent objects ids

2013-06-04 Thread Ciaran Moloney
Looks like it'll keep the same GUID as when exported as long as it's unique
in the scene. If you have two references of a refmodel in a scene, the
contents of the second model will get new GUIDs.


On Tue, Jun 4, 2013 at 5:41 PM, Alan Fregtman wrote:

> How about with refmodels? I know ObjectID sometimes changes with
> refmodels. Does this ObjectGUID suffer the same fate?
>
>
>
> On Tue, Jun 4, 2013 at 11:52 AM, Ciaran Moloney 
> wrote:
>
>> Hi,
>> did you try XSIUtils.DataRepository.GetIdentifier() passing the
>> siObjectGUID argument?
>> I've used this to keep track of ICE nodes without relying on name
>> strings. It's persistent between sessions and is preserved when models are
>> exported.
>> Works like a charm.
>> The only problem is that it's possibly a bit tricky to get a pointer back
>> to the object, since you need to know what you're looking for. I use 
>> Application.FindObjects()
>> to get a collection of objects of this class, then check for the ObjectGUID
>> I'm looking for.
>>
>> Ciaran
>>
>>
>> On Tue, Jun 4, 2013 at 12:49 PM, Michal Doniec  wrote:
>>
>>> Hi,
>>>
>>> Is there any obvious way I am missing which would allow me to identify
>>> objects in the scene, but not by name?
>>> Something like ObjectID, but persistent between scene saves and loads. I
>>> can generate UUID or something similar using "ObjectAdded" event and store
>>> custom property but I'd rather avoid it.
>>>
>>> I want to be able to track objects regardless if they were renamed or
>>> not.
>>>
>>> --
>>> --
>>> Michal
>>> http://uk.linkedin.com/in/mdoniec
>>>
>>
>>
>


Re: Persistent objects ids

2013-06-04 Thread Ciaran Moloney
Yes, you're right...I can reproduce a change of ID when deleting an object
and re-opening a scene. However, I would not dismiss the object GUID, which
appears to persists between sessions despite the change in the object ID
value. In the below snippet the sphere object changed ID but not GUID.

# Name: cylinder
# ID: 114
# GUID: {090F2A9A-D1FC-4112-ACC5-9345BEB48954}
#
# Name: disc
# ID: 92
# GUID: {D03EF191-3962-4540-929D-F5438CE59D79}
#
# Name: torus1
# ID: 68
# GUID: {1AC14CC7-1175-4E30-9CDD-BC0C0C1DE6EA}
#
# Name: sphere
# ID: 80
# GUID: {CC63558A-D5A3-4F55-8621-6D428FE2743A}
# 

# Delete cylinder, save and re-open scene

# Name: disc
# ID: 92
# GUID: {D03EF191-3962-4540-929D-F5438CE59D79}
#
# Name: torus1
# ID: 69
# GUID: {1AC14CC7-1175-4E30-9CDD-BC0C0C1DE6EA}
#
# Name: sphere
# ID: 99
# GUID: {CC63558A-D5A3-4F55-8621-6D428FE2743A}
#
# 




On Tue, Jun 4, 2013 at 6:38 PM, Matt Lind  wrote:

> This is not safe between sessions as IDs are dynamically generated and
> assigned in the order objects were created in the scene.  If an older
> object is deleted and the scene reopened, everything after it will have a
> new ID.
>
> ** **
>
> Matt
>
> ** **
>
> ** **
>
> ** **
>
> *From:* softimage-boun...@listproc.autodesk.com [mailto:
> softimage-boun...@listproc.autodesk.com] *On Behalf Of *Ciaran Moloney
> *Sent:* Tuesday, June 04, 2013 8:52 AM
> *To:* softimage@listproc.autodesk.com
> *Subject:* Re: Persistent objects ids
>
> ** **
>
> Hi,
>
> did you try XSIUtils.DataRepository.GetIdentifier() passing the
> siObjectGUID argument?
>
> I've used this to keep track of ICE nodes without relying on name strings.
> It's persistent between sessions and is preserved when models are exported.
> 
>
> Works like a charm.
>
> The only problem is that it's possibly a bit tricky to get a pointer back
> to the object, since you need to know what you're looking for. I use 
> Application.FindObjects()
> to get a collection of objects of this class, then check for the ObjectGUID
> I'm looking for.
>
> ** **
>
> Ciaran
>
> ** **
>
> ** **
>
> On Tue, Jun 4, 2013 at 12:49 PM, Michal Doniec  wrote:*
> ***
>
> Hi,
>
> ** **
>
> Is there any obvious way I am missing which would allow me to identify
> objects in the scene, but not by name?
>
> Something like ObjectID, but persistent between scene saves and loads. I
> can generate UUID or something similar using "ObjectAdded" event and store
> custom property but I'd rather avoid it.
>
> ** **
>
> I want to be able to track objects regardless if they were renamed or not.
> 
>
> ** **
>
> --
> --
> Michal
> http://uk.linkedin.com/in/mdoniec 
>
> ** **
>


RE: Persistent objects ids

2013-06-04 Thread Matt Lind
Object GUID is persistent, but not granular enough.  I've run into cases where 
multiple items get the same GUID.   Same goes for CLSID.

Matt





From: softimage-boun...@listproc.autodesk.com 
[mailto:softimage-boun...@listproc.autodesk.com] On Behalf Of Ciaran Moloney
Sent: Tuesday, June 04, 2013 3:55 PM
To: softimage@listproc.autodesk.com
Subject: Re: Persistent objects ids

Yes, you're right...I can reproduce a change of ID when deleting an object and 
re-opening a scene. However, I would not dismiss the object GUID, which appears 
to persists between sessions despite the change in the object ID value. In the 
below snippet the sphere object changed ID but not GUID.

# Name: cylinder
# ID: 114
# GUID: {090F2A9A-D1FC-4112-ACC5-9345BEB48954}
#
# Name: disc
# ID: 92
# GUID: {D03EF191-3962-4540-929D-F5438CE59D79}
#
# Name: torus1
# ID: 68
# GUID: {1AC14CC7-1175-4E30-9CDD-BC0C0C1DE6EA}
#
# Name: sphere
# ID: 80
# GUID: {CC63558A-D5A3-4F55-8621-6D428FE2743A}
# 

# Delete cylinder, save and re-open scene

# Name: disc
# ID: 92
# GUID: {D03EF191-3962-4540-929D-F5438CE59D79}
#
# Name: torus1
# ID: 69
# GUID: {1AC14CC7-1175-4E30-9CDD-BC0C0C1DE6EA}
#
# Name: sphere
# ID: 99
# GUID: {CC63558A-D5A3-4F55-8621-6D428FE2743A}
#
# 



On Tue, Jun 4, 2013 at 6:38 PM, Matt Lind 
mailto:ml...@carbinestudios.com>> wrote:
This is not safe between sessions as IDs are dynamically generated and assigned 
in the order objects were created in the scene.  If an older object is deleted 
and the scene reopened, everything after it will have a new ID.

Matt



From: 
softimage-boun...@listproc.autodesk.com<mailto:softimage-boun...@listproc.autodesk.com>
 
[mailto:softimage-boun...@listproc.autodesk.com<mailto:softimage-boun...@listproc.autodesk.com>]
 On Behalf Of Ciaran Moloney
Sent: Tuesday, June 04, 2013 8:52 AM
To: softimage@listproc.autodesk.com<mailto:softimage@listproc.autodesk.com>
Subject: Re: Persistent objects ids

Hi,
did you try XSIUtils.DataRepository.GetIdentifier() passing the siObjectGUID 
argument?
I've used this to keep track of ICE nodes without relying on name strings. It's 
persistent between sessions and is preserved when models are exported.
Works like a charm.
The only problem is that it's possibly a bit tricky to get a pointer back to 
the object, since you need to know what you're looking for. I use 
Application.FindObjects() to get a collection of objects of this class, then 
check for the ObjectGUID I'm looking for.

Ciaran


On Tue, Jun 4, 2013 at 12:49 PM, Michal Doniec 
mailto:doni...@gmail.com>> wrote:
Hi,

Is there any obvious way I am missing which would allow me to identify objects 
in the scene, but not by name?
Something like ObjectID, but persistent between scene saves and loads. I can 
generate UUID or something similar using "ObjectAdded" event and store custom 
property but I'd rather avoid it.

I want to be able to track objects regardless if they were renamed or not.

--
--
Michal
http://uk.linkedin.com/in/mdoniec




Re: Persistent objects ids

2013-06-04 Thread Ciaran Moloney
So, if the GUID isn't unique, that's a pretty lousy algorithm
Luckily, I haven't observed that so far.

Ciaran

On Tue, Jun 4, 2013 at 11:57 PM, Matt Lind  wrote:

> Object GUID is persistent, but not granular enough.  I’ve run into cases
> where multiple items get the same GUID.   Same goes for CLSID.
>
> ** **
>
> Matt
>
> ** **
>
> ** **
>
> ** **
>
> ** **
>
> ** **
>
> *From:* softimage-boun...@listproc.autodesk.com [mailto:
> softimage-boun...@listproc.autodesk.com] *On Behalf Of *Ciaran Moloney
> *Sent:* Tuesday, June 04, 2013 3:55 PM
>
> *To:* softimage@listproc.autodesk.com
> *Subject:* Re: Persistent objects ids
>
> ** **
>
> Yes, you're right...I can reproduce a change of ID when deleting an object
> and re-opening a scene. However, I would not dismiss the object GUID, which
> appears to persists between sessions despite the change in the object ID
> value. In the below snippet the sphere object changed ID but not GUID.
>
> ** **
>
> # Name: cylinder
>
> # ID: 114
>
> # GUID: {090F2A9A-D1FC-4112-ACC5-9345BEB48954}
>
> #
>
> # Name: disc
>
> # ID: 92
>
> # GUID: {D03EF191-3962-4540-929D-F5438CE59D79}
>
> #
>
> # Name: torus1
>
> # ID: 68
>
> # GUID: {1AC14CC7-1175-4E30-9CDD-BC0C0C1DE6EA}
>
> #
>
> # Name: sphere
>
> # ID: 80
>
> # GUID: {CC63558A-D5A3-4F55-8621-6D428FE2743A}
>
> # 
>
> ** **
>
> # Delete cylinder, save and re-open scene 
>
> ** **
>
> # Name: disc
>
> # ID: 92
>
> # GUID: {D03EF191-3962-4540-929D-F5438CE59D79}
>
> #
>
> # Name: torus1
>
> # ID: 69
>
> # GUID: {1AC14CC7-1175-4E30-9CDD-BC0C0C1DE6EA}
>
> #
>
> # Name: sphere
>
> # ID: 99
>
> # GUID: {CC63558A-D5A3-4F55-8621-6D428FE2743A}
>
> #
>
> # 
>
> ** **
>
> ** **
>
>  
>
> On Tue, Jun 4, 2013 at 6:38 PM, Matt Lind 
> wrote:
>
> This is not safe between sessions as IDs are dynamically generated and
> assigned in the order objects were created in the scene.  If an older
> object is deleted and the scene reopened, everything after it will have a
> new ID.
>
>  
>
> Matt
>
>  
>
>  
>
>  
>
> *From:* softimage-boun...@listproc.autodesk.com [mailto:
> softimage-boun...@listproc.autodesk.com] *On Behalf Of *Ciaran Moloney
> *Sent:* Tuesday, June 04, 2013 8:52 AM
> *To:* softimage@listproc.autodesk.com
> *Subject:* Re: Persistent objects ids
>
>  
>
> Hi,
>
> did you try XSIUtils.DataRepository.GetIdentifier() passing the
> siObjectGUID argument?
>
> I've used this to keep track of ICE nodes without relying on name strings.
> It's persistent between sessions and is preserved when models are exported.
> 
>
> Works like a charm.
>
> The only problem is that it's possibly a bit tricky to get a pointer back
> to the object, since you need to know what you're looking for. I use 
> Application.FindObjects()
> to get a collection of objects of this class, then check for the ObjectGUID
> I'm looking for.
>
>  
>
> Ciaran
>
>  
>
>  
>
> On Tue, Jun 4, 2013 at 12:49 PM, Michal Doniec  wrote:*
> ***
>
> Hi,
>
>  
>
> Is there any obvious way I am missing which would allow me to identify
> objects in the scene, but not by name?
>
> Something like ObjectID, but persistent between scene saves and loads. I
> can generate UUID or something similar using "ObjectAdded" event and store
> custom property but I'd rather avoid it.
>
>  
>
> I want to be able to track objects regardless if they were renamed or not.
> 
>
>  
>
> --
> --
> Michal
> http://uk.linkedin.com/in/mdoniec 
>
>  
>
> ** **
>


Re: Persistent objects ids

2013-06-04 Thread Raffaele Fragapane
I doubt it's an issue with GUID at an algorithmic level, if two identical
GUID could be produced by the same person on the same project, and
therefore the conflict noticed, the windows world would be in very deep
S*** :)
Identical GUIDs on one platform should be centuries apart.

It's more likely a case of generation/re-use on Soft's side, either
intentional for non-obvious reasons or a bug.


On Wed, Jun 5, 2013 at 9:00 AM, Ciaran Moloney wrote:

> So, if the GUID isn't unique, that's a pretty lousy algorithm
> Luckily, I haven't observed that so far.
>
> Ciaran
>
>
> On Tue, Jun 4, 2013 at 11:57 PM, Matt Lind wrote:
>
>> Object GUID is persistent, but not granular enough.  I’ve run into cases
>> where multiple items get the same GUID.   Same goes for CLSID.
>>
>> ** **
>>
>> Matt
>>
>> ** **
>>
>> ** **
>>
>> ** **
>>
>> ** **
>>
>> ** **
>>
>> *From:* softimage-boun...@listproc.autodesk.com [mailto:
>> softimage-boun...@listproc.autodesk.com] *On Behalf Of *Ciaran Moloney
>> *Sent:* Tuesday, June 04, 2013 3:55 PM
>>
>> *To:* softimage@listproc.autodesk.com
>> *Subject:* Re: Persistent objects ids
>>
>> ** **
>>
>> Yes, you're right...I can reproduce a change of ID when deleting an
>> object and re-opening a scene. However, I would not dismiss the object
>> GUID, which appears to persists between sessions despite the change in the
>> object ID value. In the below snippet the sphere object changed ID but not
>> GUID.
>>
>> ** **
>>
>> # Name: cylinder
>>
>> # ID: 114
>>
>> # GUID: {090F2A9A-D1FC-4112-ACC5-9345BEB48954}
>>
>> #
>>
>> # Name: disc
>>
>> # ID: 92
>>
>> # GUID: {D03EF191-3962-4540-929D-F5438CE59D79}
>>
>> #
>>
>> # Name: torus1
>>
>> # ID: 68
>>
>> # GUID: {1AC14CC7-1175-4E30-9CDD-BC0C0C1DE6EA}
>>
>> #
>>
>> # Name: sphere
>>
>> # ID: 80
>>
>> # GUID: {CC63558A-D5A3-4F55-8621-6D428FE2743A}
>>
>> # 
>>
>> ** **
>>
>> # Delete cylinder, save and re-open scene 
>>
>> ** **
>>
>> # Name: disc
>>
>> # ID: 92
>>
>> # GUID: {D03EF191-3962-4540-929D-F5438CE59D79}
>>
>> #
>>
>> # Name: torus1
>>
>> # ID: 69
>>
>> # GUID: {1AC14CC7-1175-4E30-9CDD-BC0C0C1DE6EA}
>>
>> #
>>
>> # Name: sphere
>>
>> # ID: 99
>>
>> # GUID: {CC63558A-D5A3-4F55-8621-6D428FE2743A}
>>
>> #
>>
>> # ****
>>
>> ** **
>>
>> ** **
>>
>>  
>>
>> On Tue, Jun 4, 2013 at 6:38 PM, Matt Lind 
>> wrote:
>>
>> This is not safe between sessions as IDs are dynamically generated and
>> assigned in the order objects were created in the scene.  If an older
>> object is deleted and the scene reopened, everything after it will have a
>> new ID.
>>
>>  
>>
>> Matt
>>
>>  
>>
>>  
>>
>>  
>>
>> *From:* softimage-boun...@listproc.autodesk.com [mailto:
>> softimage-boun...@listproc.autodesk.com] *On Behalf Of *Ciaran Moloney
>> *Sent:* Tuesday, June 04, 2013 8:52 AM
>> *To:* softimage@listproc.autodesk.com
>> *Subject:* Re: Persistent objects ids
>>
>>  
>>
>> Hi,
>>
>> did you try XSIUtils.DataRepository.GetIdentifier() passing the
>> siObjectGUID argument?
>>
>> I've used this to keep track of ICE nodes without relying on name
>> strings. It's persistent between sessions and is preserved when models are
>> exported. 
>>
>> Works like a charm.
>>
>> The only problem is that it's possibly a bit tricky to get a pointer back
>> to the object, since you need to know what you're looking for. I use 
>> Application.FindObjects()
>> to get a collection of objects of this class, then check for the ObjectGUID
>> I'm looking for.
>>
>>  
>>
>> Ciaran
>>
>>  
>>
>>  
>>
>> On Tue, Jun 4, 2013 at 12:49 PM, Michal Doniec  wrote:
>> 
>>
>> Hi,
>>
>>  
>>
>> Is there any obvious way I am missing which would allow me to identify
>> objects in the scene, but not by name?
>>
>> Something like ObjectID, but persistent between scene saves and loads. I
>> can generate UUID or something similar using "ObjectAdded" event and store
>> custom property but I'd rather avoid it.
>>
>>  
>>
>> I want to be able to track objects regardless if they were renamed or not.
>> 
>>
>>  
>>
>> --
>> --
>> Michal
>> http://uk.linkedin.com/in/mdoniec 
>>
>>  
>>
>> ** **
>>
>
>


-- 
Our users will know fear and cower before our software! Ship it! Ship it
and let them flee like the dogs they are!


Re: Persistent objects ids

2013-06-04 Thread Ciaran Moloney
Yeah, I figured as much.
Not that I doubt Matt's observations, but it would be nice to have some
official word on the reliability of this method - unique ID's are a request
that come up all the time.
In the mean time I'll proceed with caution, since it's the simplest general
purpose solution.

Ciaran

On Wed, Jun 5, 2013 at 12:35 AM, Raffaele Fragapane <
raffsxsil...@googlemail.com> wrote:

> I doubt it's an issue with GUID at an algorithmic level, if two identical
> GUID could be produced by the same person on the same project, and
> therefore the conflict noticed, the windows world would be in very deep
> S*** :)
> Identical GUIDs on one platform should be centuries apart.
>
> It's more likely a case of generation/re-use on Soft's side, either
> intentional for non-obvious reasons or a bug.
>
>
> On Wed, Jun 5, 2013 at 9:00 AM, Ciaran Moloney 
> wrote:
>
>> So, if the GUID isn't unique, that's a pretty lousy algorithm
>> Luckily, I haven't observed that so far.
>>
>> Ciaran
>>
>>
>> On Tue, Jun 4, 2013 at 11:57 PM, Matt Lind wrote:
>>
>>> Object GUID is persistent, but not granular enough.  I’ve run into cases
>>> where multiple items get the same GUID.   Same goes for CLSID.
>>>
>>> ** **
>>>
>>> Matt
>>>
>>> ** **
>>>
>>> ** **
>>>
>>> ** **
>>>
>>> ** **
>>>
>>> ** **
>>>
>>> *From:* softimage-boun...@listproc.autodesk.com [mailto:
>>> softimage-boun...@listproc.autodesk.com] *On Behalf Of *Ciaran Moloney
>>> *Sent:* Tuesday, June 04, 2013 3:55 PM
>>>
>>> *To:* softimage@listproc.autodesk.com
>>> *Subject:* Re: Persistent objects ids
>>>
>>> ** **
>>>
>>> Yes, you're right...I can reproduce a change of ID when deleting an
>>> object and re-opening a scene. However, I would not dismiss the object
>>> GUID, which appears to persists between sessions despite the change in the
>>> object ID value. In the below snippet the sphere object changed ID but not
>>> GUID.
>>>
>>> ** **
>>>
>>> # Name: cylinder
>>>
>>> # ID: 114
>>>
>>> # GUID: {090F2A9A-D1FC-4112-ACC5-9345BEB48954}
>>>
>>> #
>>>
>>> # Name: disc
>>>
>>> # ID: 92
>>>
>>> # GUID: {D03EF191-3962-4540-929D-F5438CE59D79}
>>>
>>> #
>>>
>>> # Name: torus1
>>>
>>> # ID: 68
>>>
>>> # GUID: {1AC14CC7-1175-4E30-9CDD-BC0C0C1DE6EA}
>>>
>>> #
>>>
>>> # Name: sphere
>>>
>>> # ID: 80
>>>
>>> # GUID: {CC63558A-D5A3-4F55-8621-6D428FE2743A}
>>>
>>> # 
>>>
>>> ** **
>>>
>>> # Delete cylinder, save and re-open scene 
>>>
>>> ** **
>>>
>>> # Name: disc
>>>
>>> # ID: 92
>>>
>>> # GUID: {D03EF191-3962-4540-929D-F5438CE59D79}
>>>
>>> #
>>>
>>> # Name: torus1
>>>
>>> # ID: 69
>>>
>>> # GUID: {1AC14CC7-1175-4E30-9CDD-BC0C0C1DE6EA}
>>>
>>> #
>>>
>>> # Name: sphere
>>>
>>> # ID: 99
>>>
>>> # GUID: {CC63558A-D5A3-4F55-8621-6D428FE2743A}
>>>
>>> #
>>>
>>> # 
>>>
>>> ** **
>>>
>>> ** **
>>>
>>>  
>>>
>>> On Tue, Jun 4, 2013 at 6:38 PM, Matt Lind 
>>> wrote:
>>>
>>> This is not safe between sessions as IDs are dynamically generated and
>>> assigned in the order objects were created in the scene.  If an older
>>> object is deleted and the scene reopened, everything after it will have a
>>> new ID.
>>>
>>>  
>>>
>>> Matt
>>>
>>>  
>>>
>>>  
>>>
>>>  
>>>
>>> *From:* softimage-boun...@listproc.autodesk.com [mailto:
>>> softimage-boun...@listproc.autodesk.com] *On Behalf Of *Ciaran Moloney
>>> *Sent:* Tuesday, June 04, 2013 8:52 AM
>>> *To:* softimage@listproc.autodesk.com
>>> *Subject:* Re: Persistent objects ids
>>>
>>>  
>>>
>>> Hi,
>>>
>>>

Re: Persistent objects ids

2013-06-04 Thread Raffaele Fragapane
I tend to agree with Matt, and to be really honest granting UID persistency
in a large software is frequently done on the side, specifically with that
intention, and either user controlled, or if left to heuristics either very
conservative or very changing (IE: at what point do you decide to lock an
ID? On creaiton? On Topo change? What happens if you swap the primitive
like you can do with Curves?).

Your best bet is emulating the above yourself by tagging objects at the
stages you want to ID them, and changing it if and when you need it. It's
actually not hard to do in terms of difficulty, but it can result in a
large and pervasive toolset before it's reliable enough, which is probably
why Michal outlined he'd rather avoid it.
It's what we do in a couple places actually to support name agnostic
operations in our pipe (plenty renaming happening since, in example, the
same rig can be imported several times for different characters).

I'm afraid there's little alternative to controlling this yourself, and to
be honest this is a rather generig CS problem more so than it's a Softimage
specific one.
The Identity of an item is a very ambiguous and volatile concept that every
user and pipeline will have a different idea of the extent of.

What Soft might want to do is offer an open parameter with a creation ID,
that way there's always something fairly static couple with the object, and
leave it to the user to modify it if they require more frequent mutation
than the first time the primitive comes into existence. This will need to
be wrapped around by every command offering creation of sorts. Gets,
Extracts, Duplicates and so on.
Log the request if you feel it's important.


On Wed, Jun 5, 2013 at 9:49 AM, Ciaran Moloney wrote:

> Yeah, I figured as much.
> Not that I doubt Matt's observations, but it would be nice to have some
> official word on the reliability of this method - unique ID's are a request
> that come up all the time.
> In the mean time I'll proceed with caution, since it's the simplest
> general purpose solution.
>
> Ciaran
>
>
> On Wed, Jun 5, 2013 at 12:35 AM, Raffaele Fragapane <
> raffsxsil...@googlemail.com> wrote:
>
>> I doubt it's an issue with GUID at an algorithmic level, if two identical
>> GUID could be produced by the same person on the same project, and
>> therefore the conflict noticed, the windows world would be in very deep
>> S*** :)
>> Identical GUIDs on one platform should be centuries apart.
>>
>> It's more likely a case of generation/re-use on Soft's side, either
>> intentional for non-obvious reasons or a bug.
>>
>>
>> On Wed, Jun 5, 2013 at 9:00 AM, Ciaran Moloney 
>> wrote:
>>
>>> So, if the GUID isn't unique, that's a pretty lousy algorithm
>>> Luckily, I haven't observed that so far.
>>>
>>> Ciaran
>>>
>>>
>>> On Tue, Jun 4, 2013 at 11:57 PM, Matt Lind wrote:
>>>
>>>> Object GUID is persistent, but not granular enough.  I’ve run into
>>>> cases where multiple items get the same GUID.   Same goes for CLSID.***
>>>> *
>>>>
>>>> ** **
>>>>
>>>> Matt
>>>>
>>>> ** **
>>>>
>>>> ** **
>>>>
>>>> ** **
>>>>
>>>> ** **
>>>>
>>>> ** **
>>>>
>>>> *From:* softimage-boun...@listproc.autodesk.com [mailto:
>>>> softimage-boun...@listproc.autodesk.com] *On Behalf Of *Ciaran Moloney
>>>> *Sent:* Tuesday, June 04, 2013 3:55 PM
>>>>
>>>> *To:* softimage@listproc.autodesk.com
>>>> *Subject:* Re: Persistent objects ids
>>>>
>>>> ** **
>>>>
>>>> Yes, you're right...I can reproduce a change of ID when deleting an
>>>> object and re-opening a scene. However, I would not dismiss the object
>>>> GUID, which appears to persists between sessions despite the change in the
>>>> object ID value. In the below snippet the sphere object changed ID but not
>>>> GUID.
>>>>
>>>> ** **
>>>>
>>>> # Name: cylinder
>>>>
>>>> # ID: 114
>>>>
>>>> # GUID: {090F2A9A-D1FC-4112-ACC5-9345BEB48954}
>>>>
>>>> #
>>>>
>>>> # Name: disc
>>>>
>>>> # ID: 92
>>>>
>>>> # GUID: {D03EF191-3962-4540-929D-F5438CE59D79}
>>>>
>>>> #
>>>>
>>>> # Name: torus1
>>>&

Re: Persistent objects ids

2013-06-05 Thread Michal Doniec
Yes, it's not Softimage related problem, it just happened that I have to do
it (again) in Soft and thought I've forgotten about some obvious
method/shortcut.

ObjectIDs will change between sessions and in some other cases, hence I
can't use them, I'll have a look at GUIDs out of curiosity. I am very
likely going to do what I've always done (ie. managing some sort of unique
IDs myself) - this discussion got me thinking though - as Raffaele said,
there is so many scenarios and variations in regards to creation time and
management/update time of unique IDs that I think it's better to leave it
to user to implement it.

Thanks again everyone, great ideas and info.



On 5 June 2013 01:39, Raffaele Fragapane wrote:

> I tend to agree with Matt, and to be really honest granting UID
> persistency in a large software is frequently done on the side,
> specifically with that intention, and either user controlled, or if left to
> heuristics either very conservative or very changing (IE: at what point do
> you decide to lock an ID? On creaiton? On Topo change? What happens if you
> swap the primitive like you can do with Curves?).
>
> Your best bet is emulating the above yourself by tagging objects at the
> stages you want to ID them, and changing it if and when you need it. It's
> actually not hard to do in terms of difficulty, but it can result in a
> large and pervasive toolset before it's reliable enough, which is probably
> why Michal outlined he'd rather avoid it.
> It's what we do in a couple places actually to support name agnostic
> operations in our pipe (plenty renaming happening since, in example, the
> same rig can be imported several times for different characters).
>
> I'm afraid there's little alternative to controlling this yourself, and to
> be honest this is a rather generig CS problem more so than it's a Softimage
> specific one.
> The Identity of an item is a very ambiguous and volatile concept that
> every user and pipeline will have a different idea of the extent of.
>
> What Soft might want to do is offer an open parameter with a creation ID,
> that way there's always something fairly static couple with the object, and
> leave it to the user to modify it if they require more frequent mutation
> than the first time the primitive comes into existence. This will need to
> be wrapped around by every command offering creation of sorts. Gets,
> Extracts, Duplicates and so on.
> Log the request if you feel it's important.
>
>
> On Wed, Jun 5, 2013 at 9:49 AM, Ciaran Moloney 
> wrote:
>
>> Yeah, I figured as much.
>> Not that I doubt Matt's observations, but it would be nice to have some
>> official word on the reliability of this method - unique ID's are a request
>> that come up all the time.
>>  In the mean time I'll proceed with caution, since it's the simplest
>> general purpose solution.
>>
>> Ciaran
>>
>>
>> On Wed, Jun 5, 2013 at 12:35 AM, Raffaele Fragapane <
>> raffsxsil...@googlemail.com> wrote:
>>
>>> I doubt it's an issue with GUID at an algorithmic level, if two
>>> identical GUID could be produced by the same person on the same project,
>>> and therefore the conflict noticed, the windows world would be in very deep
>>> S*** :)
>>> Identical GUIDs on one platform should be centuries apart.
>>>
>>> It's more likely a case of generation/re-use on Soft's side, either
>>> intentional for non-obvious reasons or a bug.
>>>
>>>
>>> On Wed, Jun 5, 2013 at 9:00 AM, Ciaran Moloney >> > wrote:
>>>
>>>> So, if the GUID isn't unique, that's a pretty lousy algorithm
>>>> Luckily, I haven't observed that so far.
>>>>
>>>> Ciaran
>>>>
>>>>
>>>> On Tue, Jun 4, 2013 at 11:57 PM, Matt Lind wrote:
>>>>
>>>>> Object GUID is persistent, but not granular enough.  I’ve run into
>>>>> cases where multiple items get the same GUID.   Same goes for CLSID.**
>>>>> **
>>>>>
>>>>> ** **
>>>>>
>>>>> Matt
>>>>>
>>>>> ** **
>>>>>
>>>>> ** **
>>>>>
>>>>> ** **
>>>>>
>>>>> ** **
>>>>>
>>>>> ** **
>>>>>
>>>>> *From:* softimage-boun...@listproc.autodesk.com [mailto:
>>>>> softimage-boun...@listproc.autodesk.com] *On Behalf Of *Ciaran Moloney
>>>>> *Sent:* Tuesday, June 04, 2013 3:55 PM
>&