この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:1
ページ更新者:guest
更新日時:2020-04-29 15:13:58

タイトル: 要素フィルターの使い方
SEOタイトル: 【Revit API】要素フィルターの使い方

以下の実装例は壁の要素のみ抽出している。

using System;
using Autodesk.Revit;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI.Selection;
using Autodesk.Revit.UI;
using Autodesk.Revit.Attributes;
using System.Collections.Generic;

namespace TestTool
{
    [Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
    public class TestTool : IExternalCommand
    {
        public Autodesk.Revit.UI.Result Execute(ExternalCommandData commandData,
            ref string message, ElementSet elements)
        {

            UIDocument uidoc = commandData.Application.ActiveUIDocument;

            Document document = uidoc.Document;

 

            ElementCategoryFilter filter = new ElementCategoryFilter(BuiltInCategory.OST_Walls);

            FilteredElementCollector collector = new FilteredElementCollector(document);

            IList<Element> walls = collector.WherePasses(filter).WhereElementIsNotElementType().ToElements();

 

            String prompt = "The walls in the current document are:\n\t";

            foreach (Element e in walls)
            {
                prompt += "ID: " + e.Id + ", Name: " + e.Name + "\n\t";
            }

            TaskDialog.Show("Revit", prompt);

            return Autodesk.Revit.UI.Result.Succeeded;
        }
    }
}

 

 

以下、ツールの実行結果例。