/***************************************************/ /**** Public Methods ****/ /***************************************************/ public static oM.Adapters.Revit.Elements.Viewport ViewportFromRevit(this Viewport revitViewPort, RevitSettings settings = null, Dictionary <string, List <IBHoMObject> > refObjects = null) { settings = settings.DefaultIfNull(); oM.Adapters.Revit.Elements.Viewport viewPort = refObjects.GetValue <oM.Adapters.Revit.Elements.Viewport>(revitViewPort.Id.IntegerValue); if (viewPort != null) { return(viewPort); } oM.Geometry.Point location = revitViewPort.GetBoxCenter().PointFromRevit(); string viewName = revitViewPort.get_Parameter(BuiltInParameter.VIEW_NAME).AsString(); string sheetNumber = revitViewPort.get_Parameter(BuiltInParameter.VIEWPORT_SHEET_NUMBER).AsString(); viewPort = BH.Engine.Adapters.Revit.Create.Viewport(sheetNumber, viewName, location); ElementType elementType = revitViewPort.Document.GetElement(revitViewPort.GetTypeId()) as ElementType; if (elementType != null) { viewPort.InstanceProperties = elementType.InstancePropertiesFromRevit(settings, refObjects); } viewPort.Name = revitViewPort.Name; //Set identifiers, parameters & custom data viewPort.SetIdentifiers(revitViewPort); viewPort.CopyParameters(revitViewPort, settings.ParameterSettings); viewPort.SetProperties(revitViewPort, settings.ParameterSettings); refObjects.AddOrReplace(revitViewPort.Id, viewPort); return(viewPort); }
/***************************************************/ /**** Public Methods ****/ /***************************************************/ public static Viewport ToRevitViewport(this oM.Adapters.Revit.Elements.Viewport viewport, Document document, RevitSettings settings = null, Dictionary <Guid, List <int> > refObjects = null) { if (viewport == null || viewport.Location == null) { return(null); } Viewport revitViewPort = refObjects.GetValue <Viewport>(document, viewport.BHoM_Guid); if (revitViewPort != null) { return(revitViewPort); } settings = settings.DefaultIfNull(); if (string.IsNullOrEmpty(viewport.ViewName)) { return(null); } if (string.IsNullOrEmpty(viewport.SheetNumber)) { return(null); } List <View> viewList = new FilteredElementCollector(document).OfClass(typeof(View)).Cast <View>().ToList(); #if (REVIT2020 || REVIT2021) View view = viewList.FirstOrDefault(x => !x.IsTemplate && x.Name == viewport.ViewName); #else View view = viewList.FirstOrDefault(x => !x.IsTemplate && x.ViewName == viewport.ViewName); #endif if (view == null) { return(null); } List <ViewSheet> viewSheetList = new FilteredElementCollector(document).OfClass(typeof(ViewSheet)).Cast <ViewSheet>().ToList(); ViewSheet viewSheet = viewSheetList.FirstOrDefault(x => !x.IsTemplate && !x.IsPlaceholder && x.SheetNumber == viewport.SheetNumber); if (viewSheet == null) { return(null); } revitViewPort = Viewport.Create(document, viewSheet.Id, view.Id, viewport.Location.ToRevit()); // Copy parameters from BHoM object to Revit element revitViewPort.CopyParameters(viewport, settings); refObjects.AddOrReplace(viewport, revitViewPort); return(revitViewPort); }
/***************************************************/ public static Element ToRevit(this oM.Adapters.Revit.Elements.Viewport viewport, Document document, RevitSettings settings = null, Dictionary <Guid, List <int> > refObjects = null) { return(viewport.ToRevitViewport(document, settings, refObjects)); }