UserData, UserDictionary, UserStrings
I noticed a new part of the RhinoCommon SDK:
it seems that GeometryBase now has some new attributes: GeometryBase.UserDictionary and GeometryBase.UserData
Previously, when importing GIS data, I've been attaching GIS attribute data as a set of user strings. But these new classes and attributes look really promising. It looks like I can actually store, for example, a vector that returns a polygon to its georeferenced origin as a value in UserDictionary. That's awesome.
Should I start using UserDictionary to store the attribute data of imported GIS objects? Is that the more stable and appropriate location, rather than UserStrings?
It looks like it's possible to chain together many pieces of geometry, nesting them into each others' ArchivableDictionaries. What if two pieces of geometry reference each other in their respective AttributeDictionaries? Is that a problem?
There should be no "stability" difference between the two. The advantage of dictionaries is that you won't have to do the string conversion for different types.
I don't think there will be a problem with your last question (at least there shouldn't be a problem).