在一些场景中,我们需要获取所有的视图列表,以便判断是否有该视图,然后进行后续的操作。
在一些场景中,我们可能仅仅只需要那些可打印视图。这些可打印视图是可以在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