ここからElementクラスのプロパティにアクセスするにはどうすればいい?
Elementを取得出来たら、今度はそのElementが持っている値を取得したいですね。
ここではElementクラスのプロパティについて解説します。
https://kizarukun.com/revitapi-filteredelementcollector
もくじ
Elementクラスのプロパティについて
Elementクラスが持っているプロパティとメソッドは「Revit API Docs」をご確認ください。
ElementクラスはRvtドキュメントで描画されているほとんど全てのクラスの基底クラスとなっています。
なので持っているプロパティも、IdやNameなど基本的なものばかりです。
Elementクラスのプロパティ:サンプル
Sample1
Sample1
{
UIApplication uiapp = this.ActiveUIDocument.Application;
UIDocument uidoc = uiapp.ActiveUIDocument;
Autodesk.Revit.ApplicationServices.Application app =
uiapp.Application as Autodesk.Revit.ApplicationServices.Application;
Autodesk.Revit.DB.Document doc = uidoc.Document;
Reference reference = uidoc.Selection.PickObject(ObjectType.Element);
Element element = doc.GetElement(reference);
string name = element.Name;
string uniqueId = element.UniqueId;
bool pinned = element.Pinned;
string result =
“Name:” + name + “\n” +
“UniqueId:” + uniqueId + “\n” +
“Pinned:” + pinned;
TaskDialog.Show(“Message”, result);
}
Sample2
Sample2
{
UIApplication uiapp = this.ActiveUIDocument.Application;
UIDocument uidoc = uiapp.ActiveUIDocument;
Autodesk.Revit.ApplicationServices.Application app =
uiapp.Application as Autodesk.Revit.ApplicationServices.Application;
Autodesk.Revit.DB.Document doc = uidoc.Document;
Reference reference = uidoc.Selection.PickObject(ObjectType.Element);
Element element = doc.GetElement(reference);
ElementId elementId = element.Id;
Category category = element.Category;
Location location = element.Location;
string result =
“Id:” + element.Id + “\n” +
“Name:” + element.Name + “\n” +
“CategoryName:” + category.Name + “\n” +
“LocationType:” + location.GetType().Name;
TaskDialog.Show(“Message”, result);
}
Elementクラスのプロパティ:解説
Sample1、Sample2ともにビュー上から要素を選択してElementを取得しています。
【Elementを取得】
Element element = doc.GetElement(reference);
Sample1
Sample1でElementクラスのプロパティにアクセスしているのは下記コードです。
【Elementクラスのプロパティ取得】
string uniqueId = element.UniqueId;
bool pinned = element.Pinned;
上記のプロパティは戻り値がstringやboolなので、それに対応する型で変数を宣言すればOKです。
Sample2
Sample2でElementクラスのプロパティにアクセスしているのは下記コードです。
【Elementクラスのプロパティ取得】
Category category = element.Category;
Location location = element.Location;
こちらはちょっと複雑ですね。
IdプロパティはElementId、CategoryプロパティはCategory、LocationプロパティはLocation、それぞれのクラスが戻り値となっています。
そのため対応するクラスでオブジェクトを生成して、Elementクラスのプロパティを代入しています。
そしてcategory.Nameやlocation.GetType().Nameなど、各クラスのメソッドやプロパティにアクセスしてプロパティ情報や位置情報を取得しています。
Elementクラスのプロパティ:まとめ
以上、Elementのプロパティ取得についてでした。
Sample2は最初はややこしいかも知れませんが、すぐに慣れますよ。
Elementに限らずプロパティ取得はこのパターンが共通なので、覚えてしまえばどこにでも応用できます!
最後まで読んでいただき、ありがとうございました!