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 < [email protected]> 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 > <[email protected]>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 <[email protected]>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:* [email protected] [mailto: >>> [email protected]] *On Behalf Of *Ciaran Moloney >>> *Sent:* Tuesday, June 04, 2013 3:55 PM >>> >>> *To:* [email protected] >>> *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 <[email protected]> >>> 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:* [email protected] [mailto: >>> [email protected]] *On Behalf Of *Ciaran Moloney >>> *Sent:* Tuesday, June 04, 2013 8:52 AM >>> *To:* [email protected] >>> *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 <[email protected]> >>> 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! >

