/*
  * public void execute(ExternalCommandData commandData, ref string message, ElementSet elements)
  * {
  *  try
  *  {
  *      //Retrieves the current active project.
  *      Autodesk.Revit.UI.UIApplication app = commandData.Application;
  *      UIDocument doc = app.ActiveUIDocument;
  *
  *      //revitApp = app
  *      Autodesk.Revit.DB.View view  = commandData.View;
  *      String ApplicationName = doc.Document.Title;
  *      String WievName = view.Document.Title;
  * //Dim sMsg As String = "Application = " & app.VersionName & _
  * //" " & app.VersionNumber & vbCrLf
  * //sMsg += "Document path = " & doc.PathName & vbCrLf ' Empty if not saved
  * //sMsg += "Document title = " & doc.Title & vbCrLf
  * //sMsg += "View name = " & view.Name
  * //MsgBox(sMsg)
  *      //Initialize RenderAppearancesForm
  *      //RenderAppearancesFrom.Asssets = app.Application.get_Assets(Autodesk.Revit.Utility.AssetType.Appearance);
  *
  *      // Generate a object for Revit materials management.
  *      //MaterialsMgr materialsManager = new MaterialsMgr(doc, app);
  *
  *      // Feed a MaterialsMgr to a dialog.
  *      FilteredElementCollector collector = new FilteredElementCollector(doc.Document);
  *      ICollection<Element> founds = collector.WhereElementIsNotElementType().ToElements();
  *
  *      ArrayList objs = new ArrayList();
  *      Autodesk.Revit.DB.GeometryElement GeomElem;
  *      Autodesk.Revit.DB.Options Opts= new Options();
  *      //writeData.Init(ref message);
  *      foreach (Element element in founds)
  *      {
  *          Autodesk.Revit.DB.Phase phaseCreated = element.PhaseCreated;
  *          if (null != phaseCreated)
  *
  *          {
  *              GeomElem = element.get_Geometry(Opts);
  *              foreach (GeometryObject geomObj in GeomElem.Objects)
  *              {
  *                  uint ifaces = 0;
  *                  Solid geomSolid = geomObj as Solid;
  *                  if (null != geomSolid)
  *                  {
  *                      foreach (Face geomFace in geomSolid.Faces)
  *                      {
  *                          ifaces++;
  *                      }
  *                      //writeData.addpart(element.Name.ToString(), ifaces);
  *                  }
  *
  *              }
  *
  *              objs.Add(element);
  *          }
  *
  *      }
  *
  *      System.Diagnostics.Trace.WriteLine(founds.Count.ToString());
  *      CF_WriterForm form = new CF_WriterForm(objs);
  *      //form.ShowDialog();
  *      //using (MaterialsForm dlg = new MaterialsForm(materialsManager,commandData))
  *      //{
  *      form.ExportFileName = ApplicationName;
  *      if (form.ShowDialog() != System.Windows.Forms.DialogResult.Cancel)
  *          {
  *              String ExportFileName = form.ExportFileName;
  *              DataProcess(ref message);
  *              // Revit need to do nothing.
  *              //return Autodesk.Revit.UI.Result.Cancelled;
  *          }
  *          else
  *          {
  *              // Done some action, ask revit to execute it.
  *              //return Autodesk.Revit.UI.Result.Succeeded;
  *           }
  *      //}
  *  }
  *  catch (Exception e)
  *  {
  *      // Exception rised, report it by revit error reporting mechanism.
  *      message = e.ToString();
  *      File.AppendAllText(@"C:\CadFaster\Revit\ExeWriter_log.txt", message);
  *      //return Autodesk.Revit.UI.Result.Failed;
  *  }
  *
  * }
  * private void DataProcess(ref string message)
  * {
  *  try
  *  {
  *     writeData.SuoriraLoput(ref message);
  *  }
  *  catch (Exception e)
  *  {
  *      // Exception rised, report it by revit error reporting mechanism.
  *      message = e.ToString();
  *      File.AppendAllText(@"C:\CadFaster\Revit\ExeWriter_log.txt", message);
  *      //return Autodesk.Revit.UI.Result.Failed;
  *  }
  * }
  */
 public void execute(string message)
 {
     try
     {
         writeData.SuoriraLoput(ref message);
     }
     catch (Exception e)
     {
         // Exception rised, report it by revit error reporting mechanism.
         message = e.ToString();
         File.AppendAllText(@"C:\CadFaster\Revit\ExeWriter_log.txt", message);
         //return Autodesk.Revit.UI.Result.Failed;
     }
 }
        public Result Execute(Autodesk.Revit.UI.ExternalCommandData cmdData, ref string msg, ElementSet elems)
        {
            Outwriter writeData = new Outwriter();

            try
            {
                writeData.SuoriraLoput(ref msg);
            }
            catch (Exception e)
            {
                // Exception rised, report it by revit error reporting mechanism.
                msg = e.ToString();
                File.AppendAllText(@"C:\CadFaster\Revit\ExeWriter_log.txt", msg);
                return(Autodesk.Revit.UI.Result.Failed);
            }
            return(Autodesk.Revit.UI.Result.Succeeded);
        }