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>

運行效果如下圖:

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


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


源碼下載地址:

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


分享到:


相關文章: