この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:2
更新日時:2020-05-03 17:10:36
タイトル: 要素のカテゴリとマテリアルの取得と表示
SEOタイトル: 【Revit API】要素のカテゴリとマテリアルの取得と表示
| この記事の要点 |
- Revit API (C#) で要素のカテゴリとマテリアルを取得
- カテゴリ:
element.Category.Name
- マテリアル:
element.GetMaterialIds(false) で ID 取得 → doc.GetElement(id) で実体
- 要素タイプによってマテリアル取得方法が違うので分岐が必要なケースあり
|
前提
C#(他言語の場合は適宜読み替えてください。)
実装
今回は選択した要素の情報をダイアログに表示するプログラムを作成する。
プログラムは以下の通り。
|
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 doc = uidoc.Document;
Element selectedElement = null;
foreach (ElementId id in uidoc.Selection.GetElementIds())
{
selectedElement = doc.GetElement(id);
break; // just get one selected element
}
// Get the category instance from the Category property
Category category = selectedElement.Category;
BuiltInCategory builtInCategory = (BuiltInCategory)category.Id.IntegerValue;
String info = "builtInCategory.ToString(): " + builtInCategory.ToString() + "\r\n";
info += "category.Id: " + category.Id + "\r\n";
info += "category.Name: " + category.Name + "\r\n";
info += "category.Material.Id: " + category.Material.Id + "\r\n";
info += "category.Material.Name: " + category.Material.Name + "\r\n";
TaskDialog.Show("Revit", info);
return Autodesk.Revit.UI.Result.Succeeded;
}
}
}
|
以下のように、Revit上で定義されている壁を選択する。
あとは外部ツールからツールを選択すれば、以下のダイアログが表示される。
