public DynamoController_Revit(RevitServicesUpdater updater, string context, IUpdateManager updateManager, ILogger logger) : base( context, updateManager, logger, new RevitWatchHandler(), Dynamo.PreferenceSettings.Load()) { Updater = updater; dynRevitSettings.Controller = this; DocumentManager.Instance.CurrentUIApplication.Application.DocumentClosed += Application_DocumentClosed; DocumentManager.Instance.CurrentUIApplication.Application.DocumentOpened += Application_DocumentOpened; DocumentManager.Instance.CurrentUIApplication.ViewActivated += Revit_ViewActivated; TransactionWrapper = TransactionManager.Instance.TransactionWrapper; TransactionWrapper.TransactionStarted += TransactionManager_TransactionCommitted; TransactionWrapper.TransactionCancelled += TransactionManager_TransactionCancelled; TransactionWrapper.FailuresRaised += TransactionManager_FailuresRaised; MigrationManager.Instance.MigrationTargets.Add(typeof(WorkspaceMigrationsRevit)); ElementNameStore = new Dictionary <ElementId, string>(); EngineController.ImportLibrary("RevitNodes.dll"); }
public DynamoController_Revit(RevitServicesUpdater updater, string context, IUpdateManager updateManager, string corePath) : base( context, updateManager, new RevitWatchHandler(), Dynamo.PreferenceSettings.Load(), corePath) { Updater = updater; dynRevitSettings.Controller = this; DocumentManager.Instance.CurrentUIApplication.Application.DocumentClosed += Application_DocumentClosed; DocumentManager.Instance.CurrentUIApplication.Application.DocumentOpened += Application_DocumentOpened; DocumentManager.Instance.CurrentUIApplication.ViewActivated += Revit_ViewActivated; // Set the intitial document. if (DocumentManager.Instance.CurrentUIApplication.ActiveUIDocument != null) { DocumentManager.Instance.CurrentUIDocument = DocumentManager.Instance.CurrentUIApplication.ActiveUIDocument; dynSettings.DynamoLogger.LogWarning(GetDocumentPointerMessage(), WarningLevel.Moderate); } TransactionWrapper = TransactionManager.Instance.TransactionWrapper; TransactionWrapper.TransactionStarted += TransactionManager_TransactionCommitted; TransactionWrapper.TransactionCancelled += TransactionManager_TransactionCancelled; TransactionWrapper.FailuresRaised += TransactionManager_FailuresRaised; MigrationManager.Instance.MigrationTargets.Add(typeof(WorkspaceMigrationsRevit)); ElementNameStore = new Dictionary <ElementId, string>(); var revitPath = Path.Combine(DynamoPaths.MainExecPath, @"Revit_2014\RevitNodes.dll"); var raasPath = Path.Combine(DynamoPaths.MainExecPath, @"Revit_2014\SimpleRaaS.dll"); EngineController.ImportLibrary(revitPath); EngineController.ImportLibrary(raasPath); //IronPythonEvaluator.InputMarshaler.RegisterMarshaler((WrappedElement element) => element.InternalElement); IronPythonEvaluator.OutputMarshaler.RegisterMarshaler((Element element) => element.ToDSType(true)); //IronPythonEvaluator.OutputMarshaler.RegisterMarshaler((IList<Element> elements) => elements.Select(e=>e.ToDSType(true))); // Turn off element binding during iron python script execution IronPythonEvaluator.EvaluationBegin += (a, b, c, d, e) => ElementBinder.IsEnabled = false; IronPythonEvaluator.EvaluationEnd += (a, b, c, d, e) => ElementBinder.IsEnabled = true; // register UnwrapElement method in ironpython IronPythonEvaluator.EvaluationBegin += (a, b, scope, d, e) => { var marshaler = new DataMarshaler(); marshaler.RegisterMarshaler((WrappedElement element) => element.InternalElement); Func <WrappedElement, object> unwrap = marshaler.Marshal; scope.SetVariable("UnwrapElement", unwrap); }; Runner = new DynamoRunner_Revit(this); }