Exemplo n.º 1
0
        public static void HandleDialogBoxShowing(object sender, Autodesk.Revit.UI.Events.DialogBoxShowingEventArgs e)
        {
            TaskDialogShowingEventArgs taskEvent = e as TaskDialogShowingEventArgs;
            MessageBoxShowingEventArgs msgEvent  = e as MessageBoxShowingEventArgs;

            try
            {
                if (taskEvent != null)
                {
                    //  Click OK
                    string dialogId = taskEvent.DialogId;
                    int    helpId   = taskEvent.HelpId;
                    string message  = taskEvent.Message;
                    LogFileManager.AppendLog("TaskDialog Message", message);
                    taskEvent.OverrideResult((int)WinForms.DialogResult.OK);
                }
                else if (msgEvent != null)
                {
                    int    okid       = (int)WinForms.DialogResult.OK;
                    int    dialogType = msgEvent.DialogType;
                    int    helpId     = msgEvent.HelpId;
                    string message    = msgEvent.Message;
                    LogFileManager.AppendLog("MessageBox Message", message);
                    msgEvent.OverrideResult(okid);
                }
                else
                {
                    LogFileManager.AppendLog("Windows MessageBox Id", e.HelpId.ToString());
                    e.OverrideResult(1);
                }
            }
            catch (Exception ex)
            {
                string message = ex.Message;
            }
        }
Exemplo n.º 2
0
        private string FindReviewDirectory(string revitFileName)
        {
            /*E-BIM\Software\Revit-AC*/
            /*E-BIM\Review\Upgrade Test*/
            string reviewDirectoryName = "";

            try
            {
                string curDirectory = Path.GetDirectoryName(revitFileName);
                if (revitFileName.ToUpper().Contains("E-BIM") && revitFileName.ToUpper().Contains("REVIT"))
                {
                    DirectoryInfo reviewDirectory = null;
                    if (revitFileName.Contains("Software")) //upper version than 2011
                    {
                        DirectoryInfo softwareDirectory = Directory.GetParent(curDirectory);
                        while (softwareDirectory.Name != "Software")
                        {
                            softwareDirectory = Directory.GetParent(softwareDirectory.FullName);
                        }

                        DirectoryInfo bimDirectory = Directory.GetParent(softwareDirectory.FullName);

                        foreach (DirectoryInfo directoryInfo in bimDirectory.GetDirectories())
                        {
                            if (directoryInfo.Name == "Review")
                            {
                                reviewDirectory = directoryInfo;
                                break;
                            }
                        }
                    }
                    else //2010
                    {
                        DirectoryInfo bimDirectory = Directory.GetParent(curDirectory);
                        while (bimDirectory.Name != "E-BIM")
                        {
                            bimDirectory = Directory.GetParent(bimDirectory.FullName);
                        }
                        foreach (DirectoryInfo directoryInfo in bimDirectory.GetDirectories())
                        {
                            if (directoryInfo.Name == "Review")
                            {
                                reviewDirectory = directoryInfo;
                                break;
                            }
                        }

                        if (null == reviewDirectory)
                        {
                            string createdReviewFolder = Path.Combine(bimDirectory.FullName, "Review");
                            if (!Directory.Exists(createdReviewFolder))
                            {
                                reviewDirectory = Directory.CreateDirectory(createdReviewFolder);
                            }
                        }
                    }

                    if (null != reviewDirectory)
                    {
                        string upgradeTest = Path.Combine(reviewDirectory.FullName, "UpgradeTest");
                        if (!Directory.Exists(upgradeTest))
                        {
                            DirectoryInfo upgradeTestDir = Directory.CreateDirectory(upgradeTest);
                        }
                        string discipline     = FindDiscipline(revitFileName);
                        string revitdirectory = Path.Combine(upgradeTest, discipline);
                        if (!Directory.Exists(revitdirectory))
                        {
                            DirectoryInfo revitDirectoryInfo = Directory.CreateDirectory(revitdirectory);
                        }
                        if (Directory.Exists(revitdirectory))
                        {
                            reviewDirectoryName = revitdirectory;
                        }
                    }
                }
                else
                {
                    LogFileManager.AppendLog("This file is not located in HOK standard folder structure.");
                }
            }
            catch (Exception ex)
            {
                string message = ex.Message;
                LogFileManager.AppendLog("[Error] Find Review Directory", message);
            }
            return(reviewDirectoryName);
        }
Exemplo n.º 3
0
        public Document OpenRevitDocument(string revitFileName)
        {
            Document doc = null;

            try
            {
                LogFileManager.AppendLog("Open Revit Document: " + revitFileName);
                BasicFileInfo   basicFileInfo   = BasicFileInfo.Extract(revitFileName);
                FileOpenOptions fileOpenOptions = projectSettings.UpgradeOptions.UpgradeVersionOpenOptions;

                if (basicFileInfo.IsWorkshared)
                {
                    ModelPath   modelPath   = ModelPathUtils.ConvertUserVisiblePathToModelPath(revitFileName);
                    OpenOptions openOptions = new OpenOptions();
                    openOptions.Audit = fileOpenOptions.Audit;
                    if (fileOpenOptions.DetachAndPreserveWorksets)
                    {
                        openOptions.DetachFromCentralOption = DetachFromCentralOption.DetachAndPreserveWorksets;
                    }

                    IList <WorksetPreview> wsPreviews      = new List <WorksetPreview>();
                    IList <WorksetId>      worksetIds      = new List <WorksetId>();
                    WorksetConfiguration   wsConfiguration = new WorksetConfiguration();

                    try
                    {
                        wsPreviews = WorksharingUtils.GetUserWorksetInfo(modelPath);
                        if (wsPreviews.Count > 0)
                        {
                            foreach (WorksetPreview wsPreview in wsPreviews)
                            {
                                worksetIds.Add(wsPreview.Id);
                            }

                            if (fileOpenOptions.OpenAllWorkset)
                            {
                                wsConfiguration.Open(worksetIds);
                            }
                            else
                            {
                                wsConfiguration.Close(worksetIds);
                            }
                            openOptions.SetOpenWorksetsConfiguration(wsConfiguration);
                        }
                    }
                    catch (Exception ex)
                    {
                        LogFileManager.AppendLog("[Warning] Open Worksets", ex.Message);
                    }
                    doc = uiApp.Application.OpenDocumentFile(modelPath, openOptions);
                }
                else
                {
                    doc = uiApp.Application.OpenDocumentFile(revitFileName);
                }
            }
            catch (Exception ex)
            {
                string message = ex.Message;
                LogFileManager.AppendLog("[Error] Open Revit Document", message);
            }
            return(doc);
        }
Exemplo n.º 4
0
        public bool UpgradeRevitProject(Document document, string revitFileName)
        {
            bool upgraded = false;

            try
            {
                BasicFileInfo     basicFileInfo     = BasicFileInfo.Extract(revitFileName);
                FileSaveAsOptions fileSaveAsOptions = projectSettings.UpgradeOptions.UpgradeVersionSaveAsOptions;

                LogFileManager.AppendLog("Upgrade Revit Project: " + revitFileName);
                LogFileManager.AppendLog("The Original Revit file was saved in " + basicFileInfo.SavedInVersion);

                SaveAsOptions saveAsOptions = new SaveAsOptions();
                saveAsOptions.OverwriteExistingFile = true;

                if (basicFileInfo.IsWorkshared)
                {
                    WorksharingSaveAsOptions worksharingSaveAsOptions = new WorksharingSaveAsOptions();
                    worksharingSaveAsOptions.OpenWorksetsDefault = FindWorksetOption(fileSaveAsOptions.WorksetConfiguration);
                    worksharingSaveAsOptions.SaveAsCentral       = fileSaveAsOptions.MakeCentral;

                    saveAsOptions.MaximumBackups = fileSaveAsOptions.NumOfBackups;
                    saveAsOptions.SetWorksharingOptions(worksharingSaveAsOptions);
                }

                bool isFinalUpgrade = projectSettings.UpgradeOptions.IsFinalUpgrade;
                if (isFinalUpgrade)
                {
                    string backupDirectory = FindBackupDirectory(revitFileName);
                    if (!string.IsNullOrEmpty(backupDirectory))
                    {
                        string fileName    = Path.GetFileName(revitFileName);
                        string newFilePath = Path.Combine(backupDirectory, fileName);
                        File.Copy(revitFileName, newFilePath, true);
                        if (File.Exists(newFilePath))
                        {
                            document.SaveAs(revitFileName, saveAsOptions);
                            LogFileManager.AppendLog("Backup Saved: " + newFilePath);
                            if (fileSaveAsOptions.Relinquish)
                            {
                                RelinquishOptions roptions = new RelinquishOptions(false);
                                roptions.UserWorksets = true;
                                TransactWithCentralOptions coptions = new TransactWithCentralOptions();
                                WorksharingUtils.RelinquishOwnership(document, roptions, coptions);
                                LogFileManager.AppendLog("Relinquish all worksets created by the current user.");
                            }
                            upgraded = true;
                        }
                    }
                    else
                    {
                        LogFileManager.AppendLog("File Not Saved", "The backup directory cannot be found.");
                        upgraded = false;
                    }
                }
                else
                {
                    string reviewDirectory = FindReviewDirectory(revitFileName);
                    if (string.IsNullOrEmpty(reviewDirectory))
                    {
                        reviewDirectory = fileSaveAsOptions.ReviewLocation;
                    }
                    string fileName = Path.GetFileName(revitFileName);
                    if (!string.IsNullOrEmpty(reviewDirectory))
                    {
                        revitFileName = Path.Combine(reviewDirectory, fileName);
                        document.SaveAs(revitFileName, saveAsOptions);
                        LogFileManager.AppendLog("File Saved: " + revitFileName);
                        if (fileSaveAsOptions.Relinquish)
                        {
                            RelinquishOptions roptions = new RelinquishOptions(false);
                            roptions.UserWorksets = true;
                            TransactWithCentralOptions coptions = new TransactWithCentralOptions();
                            WorksharingUtils.RelinquishOwnership(document, roptions, coptions);
                            LogFileManager.AppendLog("Relinquish all worksets created by the current user.");
                        }
                        upgraded = true;
                    }
                    else
                    {
                        LogFileManager.AppendLog("File Not Saved", "The review directory cannot be found.");
                        upgraded = false;
                    }
                }
            }
            catch (Exception ex)
            {
                string message = ex.Message;
                LogFileManager.AppendLog("[Error] Upgrade Revit Project", message);
            }
            return(upgraded);
        }