/// <summary>
 /// Returns the name of the model component type, and then its name and index.
 /// </summary>
 /// <remarks>This is provided as a visual aid. Do not rely on this for serialization.</remarks>
 /// <returns></returns>
 public override string ToString()
 {
     return($"{GetType().Name}: {(string.IsNullOrEmpty(Name)?"(unnamed)":Name)} ({RhinoMath.IntIndexToString(Index)})");
 }