Revit二次開發,取視圖列表,以及可打印的視圖列表

在一些場景中,我們需要獲取所有的視圖列表,以便判斷是否有該視圖,然後進行後續的操作。

在一些場景中,我們可能僅僅只需要那些可打印視圖。這些可打印視圖是可以在Revit中可視化的。

<code>using Autodesk.Revit.DB; using Autodesk.Revit.DB.Architecture; using Autodesk.Revit.UI; using Autodesk.Revit.UI.Selection; using System; using System.Collections.Generic; using System.Linq; using System.Runtime.CompilerServices; using System.Text; namespace Create3DView { /// /// 視圖應用 /// /// marc [Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)] [Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)] [Autodesk.Revit.Attributes.Journaling(Autodesk.Revit.Attributes.JournalingMode.NoCommandData)] public class DefaultCommand : IExternalCommand { /// /// 執行指令 /// /// /// /// /// public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) { var document = commandData.Application.ActiveUIDocument.Document; List views = null; using (var collector = new FilteredElementCollector(document).OfClass(typeof(View))) { views = collector.Cast().ToList(); } string viewsText = string.Empty; views.ForEach((view) => { viewsText += view.Name + "\r\n"; }); TaskDialog.Show("提示", "視圖列表:\r\n" + viewsText); string canBePrintedViewsText = string.Empty; var canBePrintedViews = views.Where(q => q.CanBePrinted).ToList(); canBePrintedViews.ForEach((view) => { canBePrintedViewsText += view.Name + "\r\n"; }); TaskDialog.Show("提示", "可打印的視圖列表:\r\n" + canBePrintedViewsText); return Result.Succeeded; } } } /<code>

運行效果如下圖:



源碼下載地址:

https://download.csdn.net/download/mazhiyuan1981/12881373