Exemple #1
0
        private static DynamoViewModel InitializeCoreViewModel(RevitDynamoModel revitDynamoModel)
        {
            var vizManager = new RevitVisualizationManager(revitDynamoModel);

            var viewModel = DynamoViewModel.Start(
                new DynamoViewModel.StartConfiguration()
            {
                DynamoModel          = revitDynamoModel,
                VisualizationManager = vizManager,
                WatchHandler         =
                    new RevitWatchHandler(vizManager, revitDynamoModel.PreferenceSettings)
            });

            revitDynamoModel.PackageManagerClient.RequestAuthentication +=
                SingleSignOnManager.RegisterSingleSignOn;

#if ENABLE_DYNAMO_SCHEDULER
            revitDynamoModel.ShutdownStarted += (drm) =>
            {
                var uiApplication = DocumentManager.Instance.CurrentUIApplication;
                uiApplication.Idling += DeleteKeeperElementOnce;
            };
#else
            revitDynamoModel.ShutdownStarted += (drm) =>
                                                IdlePromise.ExecuteOnShutdown(DeleteKeeperElement);
#endif
            return(viewModel);
        }
Exemple #2
0
        protected override void PreShutdownCore(bool shutdownHost)
        {
            if (shutdownHost)
            {
                IdlePromise.ExecuteOnShutdown(ShutdownRevitHost);
            }

            base.PreShutdownCore(shutdownHost);
        }
Exemple #3
0
        public override void ShutDown()
        {
            IdlePromise.ExecuteOnShutdown(
                delegate
            {
                var transaction = new Autodesk.Revit.DB.Transaction(dynRevitSettings.Doc.Document, "Dynamo Script");
                transaction.Start();

                if (_keeperId != ElementId.InvalidElementId)
                {
                    dynRevitSettings.Doc.Document.Delete(_keeperId);
                    _keeperId = ElementId.InvalidElementId;
                }

                transaction.Commit();
            });

            base.ShutDown();
            Updater.UnRegisterAllChangeHooks();
            RevertPythonBindings();
        }
        public override void ShutDown(bool shutDownHost)
        {
            IdlePromise.ExecuteOnShutdown(
                delegate
            {
                var transaction = new Autodesk.Revit.DB.Transaction(dynRevitSettings.Doc.Document, "Dynamo Script");
                transaction.Start();

                if (_keeperId != ElementId.InvalidElementId)
                {
                    dynRevitSettings.Doc.Document.Delete(_keeperId);
                    _keeperId = ElementId.InvalidElementId;
                }

                transaction.Commit();
            });

            base.ShutDown(shutDownHost);
            Updater.UnRegisterAllChangeHooks();
            RevertPythonBindings();

            if (shutDownHost)
            {
                //shut down revit
                var exitCommand = RevitCommandId.LookupPostableCommandId(PostableCommand.ExitRevit);
                var uiapp       = dynRevitSettings.Revit.ActiveUIDocument.Application;
                if (uiapp.CanPostCommand(exitCommand))
                {
                    uiapp.PostCommand(exitCommand);
                }
                else
                {
                    MessageBox.Show(
                        "A command in progress prevented Dynamo from closing revit. Dynamo update will be cancelled.");
                }
            }
        }
Exemple #5
0
        private static DynamoViewModel InitializeCoreViewModel(RevitDynamoModel revitDynamoModel)
        {
            var vizManager = new RevitVisualizationManager(revitDynamoModel);

            var viewModel = DynamoViewModel.Start(
                new DynamoViewModel.StartConfiguration()
            {
                DynamoModel          = revitDynamoModel,
                VisualizationManager = vizManager,
                WatchHandler         =
                    new RevitWatchHandler(vizManager, revitDynamoModel.PreferenceSettings)
            });

            viewModel.RequestAuthentication +=
                SingleSignOnManager.RegisterSingleSignOn;

            revitDynamoModel.ShuttingDown += (drm) =>
                                             IdlePromise.ExecuteOnShutdown(
                delegate
            {
                if (null != DocumentManager.Instance.CurrentDBDocument)
                {
                    TransactionManager.Instance.EnsureInTransaction(DocumentManager.Instance.CurrentDBDocument);

                    var keeperId = vizManager.KeeperId;

                    if (keeperId != ElementId.InvalidElementId)
                    {
                        DocumentManager.Instance.CurrentUIDocument.Document.Delete(keeperId);
                    }

                    TransactionManager.Instance.ForceCloseTransaction();
                }
            });

            return(viewModel);
        }