/// <summary> /// Get View Template applied to view. /// </summary> /// <param name="view">View to retrieve View Template from.</param> /// <returns name="view">View Template applied to view.</returns> /// <search>view, template</search> public static object ViewTemplate(global::Revit.Elements.Views.View view) { var doc = DocumentManager.Instance.CurrentDBDocument; var v = (Autodesk.Revit.DB.View)view.InternalElement; var id = v.ViewTemplateId; return(id != Autodesk.Revit.DB.ElementId.InvalidElementId ? doc.GetElement(id).ToDSType(true) : null); }
public static void ToggleFilterInView(global::Revit.Elements.Views.View view, global::Revit.Elements.Element viewFilter, bool toggle) { try { Autodesk.Revit.DB.View internalView = view.InternalElement as Autodesk.Revit.DB.View; internalView.SetIsFilterEnabled(viewFilter.InternalElement.Id, toggle); } catch (Exception e) { throw new Exception(e.Message); } }
public static bool IsFilterEnabled(global::Revit.Elements.Views.View view, global::Revit.Elements.Element viewFilter) { try { Autodesk.Revit.DB.View internalView = view.InternalElement as Autodesk.Revit.DB.View; return(internalView.GetIsFilterEnabled(viewFilter.InternalElement.Id)); } catch (Exception e) { throw new Exception(e.Message); } }
/// <summary> /// Creates a copy of View Template. /// </summary> /// <param name="viewTemplate">View Template to be duplicated.</param> /// <param name="name">Name of the new View Template.</param> /// <returns name="view">View Template</returns> public static global::Revit.Elements.Views.View Duplicate(global::Revit.Elements.Views.View viewTemplate, string name) { var doc = DocumentManager.Instance.CurrentDBDocument; var v = (Autodesk.Revit.DB.View)viewTemplate.InternalElement; TransactionManager.Instance.EnsureInTransaction(doc); var newId = Autodesk.Revit.DB.ElementTransformUtils.CopyElement(doc, v.Id, Autodesk.Revit.DB.XYZ.Zero); var newView = (Autodesk.Revit.DB.View)doc.GetElement(newId.FirstOrDefault()); newView.Name = name; TransactionManager.Instance.TransactionTaskDone(); return(newView.ToDSType(true) as global::Revit.Elements.Views.View); }
/// <summary> /// Duplicates an existing view. /// </summary> /// <param name="view">View to duplicate.</param> /// <param name="name">Name to be assigned to new view.</param> /// <param name="options">Duplicate options. Ex: Duplicate as Dependant.</param> /// <returns name="view">New View.</returns> public static global::Revit.Elements.Views.View Duplicate(global::Revit.Elements.Views.View view, string name, string options) { var doc = DocumentManager.Instance.CurrentDBDocument; var v = (Autodesk.Revit.DB.View)view.InternalElement; var dupOptions = (Autodesk.Revit.DB.ViewDuplicateOption)Enum.Parse(typeof(Autodesk.Revit.DB.ViewDuplicateOption), options); TransactionManager.Instance.EnsureInTransaction(doc); var newView = doc.GetElement(v.Duplicate(dupOptions)); newView.Name = name; TransactionManager.Instance.TransactionTaskDone(); return(newView.ToDSType(true) as global::Revit.Elements.Views.View); }
/// <summary> /// Sets Workset visibility for a View. /// </summary> /// <param name="view">View to set the visibility on.</param> /// <param name="worksets">Worksets to set the visibility for.</param> /// <param name="visibility">Visibility setting. Ex: Hide.</param> /// <returns name="view">View</returns> public static global::Revit.Elements.Views.View SetWorksetVisibility(global::Revit.Elements.Views.View view, List <Workset> worksets, string visibility) { var doc = DocumentManager.Instance.CurrentDBDocument; var v = (Autodesk.Revit.DB.View)view.InternalElement; var vis = (Autodesk.Revit.DB.WorksetVisibility)Enum.Parse(typeof(Autodesk.Revit.DB.WorksetVisibility), visibility); TransactionManager.Instance.EnsureInTransaction(doc); foreach (var w in worksets) { v.SetWorksetVisibility(w.InternalWorkset.Id, vis); } TransactionManager.Instance.TransactionTaskDone(); return(view); }
public static List <bool> IsHiddenInView(List <global::Revit.Elements.Element> element, global::Revit.Elements.Views.View view) { List <bool> boolList = new List <bool>(); foreach (global::Revit.Elements.Element e in element) { Autodesk.Revit.DB.Element internalElement = (Autodesk.Revit.DB.Element)e.InternalElement; Autodesk.Revit.DB.View internalView = (Autodesk.Revit.DB.View)view.InternalElement; boolList.Add(internalElement.IsHidden(internalView)); } return(boolList); }
/// <summary> /// Set View Template for a View. /// </summary> /// <param name="view">View that template will be applied to.</param> /// <param name="viewTemplate">View Template that will be applied to View.</param> /// <returns name="view"></returns> /// <search>set, view, template</search> public static global::Revit.Elements.Views.View SetViewTemplate(global::Revit.Elements.Views.View view, global::Revit.Elements.Views.View viewTemplate) { var doc = DocumentManager.Instance.CurrentDBDocument; var v = (Autodesk.Revit.DB.View)view.InternalElement; var vt = (Autodesk.Revit.DB.View)viewTemplate.InternalElement; if (v.IsValidViewTemplate(vt.Id)) { TransactionManager.Instance.EnsureInTransaction(doc); v.ViewTemplateId = vt.Id; TransactionManager.Instance.TransactionTaskDone(); } else { throw new Exception("Specified View Template is not valid for this View."); } return(view); }
/// <summary> /// Removes View Template from given view. /// </summary> /// <param name="view">View to remove View Template from.</param> /// <returns name="view">View that template was removed from.</returns> /// <search>view, template, remove, delete</search> public static global::Revit.Elements.Views.View RemoveViewTemplate(global::Revit.Elements.Views.View view) { var doc = DocumentManager.Instance.CurrentDBDocument; var v = (Autodesk.Revit.DB.View)view.InternalElement; try { // set "View Template" parameter to -1 to remove template TransactionManager.Instance.EnsureInTransaction(doc); var bip = v.get_Parameter(Autodesk.Revit.DB.BuiltInParameter.VIEW_TEMPLATE_FOR_SCHEDULE); bip.Set(new Autodesk.Revit.DB.ElementId(-1)); TransactionManager.Instance.TransactionTaskDone(); } catch (Exception) { // ignored } return(view); }
/// <summary> /// Remove view filter from view. /// </summary> /// <param name="view">View to remove view filter from.</param> /// <param name="viewFilter">View filter to be removed.</param> /// <returns name="view">View that filter was removed from.</returns> /// <search>view, filter, remove, delete</search> public static global::Revit.Elements.Views.View RemoveFilter(global::Revit.Elements.Views.View view, List <global::Revit.Elements.Element> viewFilter) { var doc = DocumentManager.Instance.CurrentDBDocument; var v = (Autodesk.Revit.DB.View)view.InternalElement; // get all filters for a view var ids = v.GetFilters(); TransactionManager.Instance.EnsureInTransaction(doc); foreach (var element in viewFilter) { var pfe = (Autodesk.Revit.DB.ParameterFilterElement)element.InternalElement; if (ids.Contains(pfe.Id)) { v.RemoveFilter(pfe.Id); } } TransactionManager.Instance.TransactionTaskDone(); return(view); }
public static global::Revit.Elements.Element ByMultipleLoops(global::Revit.Elements.FilledRegionType filledRegionType, global::Revit.Elements.Views.View view, List <List <Curve> > curvesToUse) { //the current document Document doc = DocumentManager.Instance.CurrentDBDocument; //boundary loop to append nested loops to List <CurveLoop> boundariesLoop = new List <CurveLoop>(); //iterate through the loops and create curve loops foreach (var curveList in curvesToUse) { SortCurves(curveList); List <Autodesk.Revit.DB.Curve> curves = new List <Autodesk.Revit.DB.Curve>(); foreach (var curve in curveList) { curves.Add(curve.ToRevitType(true)); } boundariesLoop.Add(CurveLoop.Create(curves)); } //build the filled region TransactionManager.Instance.EnsureInTransaction(doc); var filledRegion = FilledRegion.Create(doc, filledRegionType.InternalElement.Id, view.InternalElement.Id, boundariesLoop); TransactionManager.Instance.TransactionTaskDone(); //return the newly created revit element return(filledRegion.ToDSType(true)); }
public static Dictionary <string, object> GetLeaderEnds(global::Revit.Elements.Element grid, global::Revit.Elements.Views.View view) { //convert to internal representation Autodesk.Revit.DB.DatumPlane internalGrid = (Autodesk.Revit.DB.DatumPlane)grid.InternalElement; //get the leader ends. Autodesk.Revit.DB.Leader leaderEnd0 = internalGrid.GetLeader(Autodesk.Revit.DB.DatumEnds.End0, (Autodesk.Revit.DB.View)view.InternalElement); Autodesk.Revit.DB.Leader leaderEnd1 = internalGrid.GetLeader(Autodesk.Revit.DB.DatumEnds.End1, (Autodesk.Revit.DB.View)view.InternalElement); //returns the outputs var outInfo = new Dictionary <string, object> { { "leaderEnd0", leaderEnd0 }, { "leaderEnd1", leaderEnd1 } }; return(outInfo); }
/// <summary> /// This node will get the underlying curve of the reference plane in a given view. /// </summary> /// <param name="referencePlane">The reference plane to get curves from.</param> /// <param name="view">The view to obtain the curves in.</param> /// <returns name="curve">The room that is tagged.</returns> /// <search> /// referenceplane,referenceplane.getcurvesinview /// </search> public static List <Curve> GetCurvesInView(List <global::Revit.Elements.Element> referencePlane, global::Revit.Elements.Views.View view) { List <Curve> curveList = new List <Curve>(); Autodesk.Revit.DB.View internalView = (Autodesk.Revit.DB.View)view.InternalElement; foreach (var refPlane in referencePlane) { Autodesk.Revit.DB.DatumPlane internalReferencePlane = (Autodesk.Revit.DB.DatumPlane)refPlane.InternalElement; IList <Autodesk.Revit.DB.Curve> internalCurves = internalReferencePlane.GetCurvesInView(DatumExtentType.ViewSpecific, internalView); foreach (var curve in internalCurves) { curveList.Add(curve.ToProtoType(true)); } } return(curveList); }