protected override bool Write(Rhino.FileIO.BinaryArchiveWriter archive)
 {
   // you can implement File IO however you want... but the dictionary class makes
   // issues like versioning in the 3dm file a bit easier.  If you didn't want to use
   // the dictionary for writing, your code would look something like.
   //
   //  archive.Write3dmChunkVersion(1, 0);
   //  archive.WriteInt(Weight);
   //  archive.WriteDouble(Density);
   var dict = new Rhino.Collections.ArchivableDictionary(1, "Physical");
   dict.Set("Weight", Weight);
   dict.Set("Density", Density);
   archive.WriteDictionary(dict);
   return true;
 }
 protected override bool Write(Rhino.FileIO.BinaryArchiveWriter archive)
 {
   // you can implement File IO however you want... but the dictionary class makes
   // issues like versioning in the 3dm file a bit easier.  If you didn't want to use
   // the dictionary for writing, your code would look something like.
   //
   //  archive.Write3dmChunkVersion(1, 0);
   //  archive.WriteInt(IntegerData);
   //  archive.WriteString(StringData);
   var dict = new Rhino.Collections.ArchivableDictionary(1, "MyCustomData");
   dict.Set("IntegerData", IntegerData);
   dict.Set("StringData", StringData);
   archive.WriteDictionary(dict);
   return true;
 }
 protected override void WriteDocument(RhinoDoc doc, Rhino.FileIO.BinaryArchiveWriter archive, Rhino.FileIO.FileWriteOptions options)
 {
   archive.WriteDictionary(m_dict);
 }