Difference between Userdictionary from attributes and from geometry base

Thanks to Dale in this post flow command he suggested to me to use usertext

What is the difference between the userdictionary we can use in attributes and userdictionary in geometry base?
I need to add a simple string to the ids of the document to get a unique correspondence when i use a command that makes copies of some ids (for example Flow or ArrayPolar …).
I am asking this because in the past i had some problems with memoryleaks because of massive use of userdata.
I don’t use them anymore and i would like to avoid possible memory leaks , so if there is a difference between userdictionaries or there is something better to use it would be great. Thank you

Hi @gianfranco74,

A Rhino object consists of 2 pieces:

  1. Geometry (e.g. point, curve, Brep, etc.)
  2. Attributes (color, layer, material, etc.)

Both Geometry and Attributes can hold user-assigned data. This can be in the form of user text, user dictionaries, or custom user data.

In general, user-assigned data will survive a command “better” when assigned to Attributes, rather than Geometry. Rhino tries hard to maintain user-assigned data though out a command. This isn’t always possible when assigned to Geometry.

To my knowledge, Rhino does not leak memory associated with user-assigned data, especially when assigned using .NET tools. If you have examples of where you think this is occurring, feel free to provide us these samples for evaluation.

– Dale

1 Like