internal List <string> IFCExportpredefined(Document doc)
        {
            //import

            List <string> ifcs = new List <string>();
            IFCExportConfigurationsMap configurationsMap = new IFCExportConfigurationsMap();

            configurationsMap.AddBuiltInConfigurations();
            configurationsMap.Add(IFCExportConfiguration.GetInSession());
            configurationsMap.AddSavedConfigurations();
            configurationsMap = AddSavedConfigurations(configurationsMap, doc);
            //configurationsMap.Add(mauro);
            //IFCExport mainWindow = new IFCExport(doc, configurationsMap, configurationsMap.Values.ToList()[5].Name);
            //IFCExporterUIWindow iFCExporterUIWindow = new IFCExporterUIWindow(configurationsMap, configurationsMap.Values.ToList()[0].Name);
            //mainWindow.ShowDialog();



            int n = configurationsMap.Values.Count();

            for (int j = 0; j < configurationsMap.Values.Count(); j++)
            {
                List <IFCExportConfiguration> val = configurationsMap.Values.ToList();
                ifcs.Add(val[j].Name);
            }
            return(ifcs);
        }
        private bool ExportIFC(Document doc, string folder, string name, ElementId viewid, string settings)
        {
            //Create an instance of IFCExportOptions
            IFCExportOptions IFCOptions = new IFCExportOptions();

            IFCExportConfigurationsMap configurationsMap = new IFCExportConfigurationsMap();

            configurationsMap.AddBuiltInConfigurations();
            configurationsMap.Add(IFCExportConfiguration.GetInSession());
            configurationsMap.AddSavedConfigurations();
            int n = configurationsMap.Values.Count();

            AddSavedConfigurations(configurationsMap, doc);


            for (int j = 0; j < configurationsMap.Values.Count(); j++)
            {
                List <IFCExportConfiguration> val = configurationsMap.Values.ToList();
                if (val[j].Name == settings)
                {
                    val[j].VisibleElementsOfCurrentView = true;
                    try
                    {
                        val[j].UpdateOptions(IFCOptions, viewid);
                    }
                    catch
                    {
                    }
                    val[j].VisibleElementsOfCurrentView = true;
                }
            }
            try
            {
                Transaction k = new Transaction(doc, "export ifc");
                k.Start();
                doc.Export(folder, name, IFCOptions);
                k.Commit();
                return(true);
            }
            catch (Exception e)
            {
                string error = e.Message;
                return(false);
            }
        }