static void ghDocument_SolutionEnd(object sender, GH.Kernel.GH_SolutionEventArgs e)
        {
#if DEBUG
            Rhino.RhinoApp.WriteLine("Solution end event");
#endif
            if (m_Instance != null)
            {
                if (m_Instance.m_Controller != null)
                {
                    m_Instance.m_Controller.SetState(SOController.ControllerState.idle);
                }
            }
#if DEBUG
            Rhino.RhinoApp.WriteLine("> Controller state: " + m_Instance.m_Controller.State.ToString());
#endif
        }
        static void ghDocument_SolutionStart(object sender, GH.Kernel.GH_SolutionEventArgs e)
        {
#if DEBUG
            Rhino.RhinoApp.WriteLine("Solution start event");
#endif
            if (m_Instance != null)
            {
                if (m_Instance.m_Controller != null)
                {
                    if (m_Instance.m_Controller.State != SOController.ControllerState.new_solution)
                    {
                        e.Document.ExpireSolution();
                    }
                    m_Instance.m_Controller.SetState(SOController.ControllerState.new_solution);
                }
            }
#if DEBUG
            Rhino.RhinoApp.WriteLine("> Controller state: " + m_Instance.m_Controller.State.ToString());
#endif
        }