RevitのAPIを使って要素を取得する際、最も基本的かつ頻出なのがGetElementメソッドです。
このメソッドはDocumentクラスを通じて使用します。
本記事ではその基本から応用までを丁寧に解説します。
Revitアドイン開発をLancersにて承っております。
詳しくは下の記事にまとめています。

DocumentとGetElementの概要
Documentクラスは現在開かれているRevitのプロジェクト情報を持ちます。
モデル内の要素情報もこのクラスに格納されています。
一方、GetElementメソッドは指定したElementIdをもとに要素を取得する機能を持ちます。
この2つを組み合わせて使うことで任意の要素にアクセスできるようになります。
GetElementの基本的な使い方
GetElementメソッドの基本構文は以下の通りです。
Element element = doc.GetElement(reference);
- docはDocumentのインスタンスです。
- referenceはユーザー選択などで得られる情報です。
Documentから要素を取得する手順
まずDocumentインスタンスを取得します。
public void Sample() { Autodesk.Revit.UI.UIDocument uidoc = this.ActiveUIDocument; Autodesk.Revit.DB.Document doc = uidoc.Document; }
このdocを使ってGetElementを呼び出します。
PickObjectでReferenceを取得する方法
次にユーザーの画面選択からReferenceを取得します。
PickObjectを使うことで要素選択を行えます。
public void Sample() { Autodesk.Revit.UI.UIDocument uidoc = this.ActiveUIDocument; Autodesk.Revit.DB.Document doc = uidoc.Document; Reference reference = uidoc.Selection.PickObject(ObjectType.Element, "要素を選択してください"); }

Referenceを引数にElementを取得
以上を組み合わせてElementを取得します。
サンプルコードが下記のようになります。
(ユーザーの選択結果をそのまま画面表示する例です。)
public void Sample() { Autodesk.Revit.UI.UIDocument uidoc = this.ActiveUIDocument; Autodesk.Revit.DB.Document doc = uidoc.Document; Reference reference = uidoc.Selection.PickObject(ObjectType.Element, "要素を選択してください"); Element elem = doc.GetElement(reference); TaskDialog.Show("取得結果", $"要素ID:{elem.Id}"); }

よくあるエラーとその対処法
- null参照エラー → 要素未取得のまま処理
- 型変換エラー → as演算子とnullチェック併用
- PickObjectのキャンセル → try-catchで補足が必要
try { Reference r = uidoc.Selection.PickObject(ObjectType.Element); } catch (Autodesk.Revit.Exceptions.OperationCanceledException) { TaskDialog.Show("情報", "操作がキャンセルされました"); }
DocumentからGetElementまとめ
以上でGetElementの使い方の基本と応用を紹介しました!
RevitAPI独学用教材
最後に教材等を紹介します。
RevitAPIを理解してプログラムを作れるようになるには、C#の知識が必要です。
下記、オススメの参考書です。
プログラムが初心者にオススメのC#教材
プログラムの基礎知識がある人にオススメのC#教材
美しいコードを書きたい人はこちら
Revitアドイン作ります
のんびり学習してる余裕などない!という方にご案内です。
スキル、資格等の詳細はプロフィールをご覧ください。
ご質問などもお気軽にメッセージしていただければと思います。
詳しくは下の記事にまとめています。

最後まで読んでいただき、ありがとうございました^^
以上です。