/// <summary>
 /// Read from binary archive
 /// </summary>
 public void ReadDocument(BinaryArchiveReader archive)
 {
     archive.Read3dmChunkVersion(out var major, out var minor);
     if (MAJOR == major && MINOR == minor)
     {
         var string_table = archive.ReadStringArray();
         if (null != string_table)
         {
             m_string_table.AddRange(string_table);
         }
     }
 }
 /// <summary>
 /// Called whenever a Rhino document is being loaded and plug-in user data was
 /// encountered written by a plug-in with this plug-in's GUID.
 /// </summary>
 public void ReadDocument(RhinoDoc doc, BinaryArchiveReader archive, FileReadOptions options)
 {
     archive.Read3dmChunkVersion(out var major, out var minor);
     if (MAJOR == major && MINOR == minor)
     {
         // Always read user data even though you might not use it...
         var strings = archive.ReadStringArray();
         if (null != strings && !options.ImportMode && !options.ImportReferenceMode)
         {
             m_strings.AddRange(strings);
         }
     }
 }