private void btnExport_Click(object sender, RoutedEventArgs e)
        {
            // check input first
            if (string.IsNullOrEmpty(SourceFolder.Text))
            {
                MessageBox.Show("Please select source folder!");
                SourceFolder.Focus();
                return;
            }
            if (Directory.Exists(SourceFolder.Text) == false)
            {
                MessageBox.Show("Source folder does not exist!");
                SourceFolder.Focus();
                return;
            }
            if (string.IsNullOrEmpty(TargetFolder.Text))
            {
                MessageBox.Show("Please select target folder!");
                TargetFolder.Focus();
                return;
            }
            string targetFolder = TargetFolder.Text;

            if (Directory.Exists(targetFolder) == false)
            {
                Directory.CreateDirectory(targetFolder);
            }
            // find all rvt files including sub directories
            var    files = Directory.EnumerateFiles(SourceFolder.Text, "*.rvt", SearchOption.AllDirectories);
            int    count = files.Count(), success = 0;
            double curStep = 0, current = 0, tempVal;

            foreach (var f in files)
            {
                if (exportOneFile(f, targetFolder))
                {
                    success++;
                }
                current++;
                // show progress when more than 5 percent
                tempVal = current * 100 / count;
                if (tempVal - 5 > curStep)
                {
                    curStep           = tempVal;
                    progressBar.Value = curStep;
                    RAPWPF.WpfApplication.DoEvents();
                }
            }
            progressBar.Value = 100;
            RAPWPF.WpfApplication.DoEvents();
            // show summary information
            MessageBox.Show("Export " + success + " files successfully, " + (count - success) + " files failed.");
            Close();
        }
Beispiel #2
0
        private void btnUpgrade_Click(object sender, RoutedEventArgs e)
        {
            // check input first
            if (string.IsNullOrEmpty(SourceFolder.Text))
            {
                MessageBox.Show("Please select source folder!");
                SourceFolder.Focus();
                return;
            }
            if (Directory.Exists(SourceFolder.Text) == false)
            {
                MessageBox.Show("Source folder does not exist!");
                SourceFolder.Focus();
                return;
            }
            if (string.IsNullOrEmpty(TargetFolder.Text))
            {
                MessageBox.Show("Please select target folder!");
                TargetFolder.Focus();
                return;
            }
            // make sure that the source folder and target folder don't overlap
            string sourceFolder = SourceFolder.Text.TrimEnd('\\'), targetFolder = TargetFolder.Text.TrimEnd('\\');

            if (sourceFolder.IndexOf(targetFolder, StringComparison.OrdinalIgnoreCase) == 0 ||
                targetFolder.IndexOf(sourceFolder, StringComparison.OrdinalIgnoreCase) == 0)
            {
                string extra = "";
                if (sourceFolder.Length > targetFolder.Length)
                {
                    extra = sourceFolder.Substring(targetFolder.Length);
                }
                else
                {
                    extra = targetFolder.Substring(sourceFolder.Length);
                }
                if (extra.Length == 0 || extra[0] == '\\')
                {
                    MessageBox.Show("Target folder cannot be a parent or child folder of source folder!");
                    TargetFolder.Focus();
                    return;
                }
            }
            // at least select one file type
            if (cbRvt.IsChecked == false && cbRfa.IsChecked == false)
            {
                MessageBox.Show("At least check one Revit file type!");
                return;
            }
            upgradeFolder(sourceFolder, targetFolder, (cbRvt.IsChecked == true), (cbRfa.IsChecked == true));
        }
        private void btnExport_Click(object sender, RoutedEventArgs e)
        {
            // check select target folder
            if (string.IsNullOrEmpty(TargetFolder.Text))
            {
                MessageBox.Show("Please select target folder!");
                TargetFolder.Focus();
                return;
            }
            string targetFolder = TargetFolder.Text;

            if (Directory.Exists(targetFolder) == false)
            {
                Directory.CreateDirectory(targetFolder);
            }
            int exported = exportFamilies(targetFolder, progressUpdater);

            MessageBox.Show(string.Format("Exported {0} families!", exported));
            Close();
        }