※当ブログでは商品・サービスのリンク先にプロモーションを含みます。ご了承ください。

選択する

DocumentからGetElementで要素のクリック選択

RevitのAPIを使って要素を取得する際、最も基本的かつ頻出なのがGetElementメソッドです。

このメソッドはDocumentクラスを通じて使用します。

本記事ではその基本から応用までを丁寧に解説します。

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, "要素を選択してください");
}

 

Selection
Revitモデル上の部材を選択する【Selectionクラス使用】RevitAPIを使ってモデル上の部材選択(要素選択)する手法を紹介します。Selectionクラスを使うことで単独選択、複数選択、範囲選択など様々な選択方法が可能です。...

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}");
}
※上記コードをThisApplication.csにコピペでそのまま使えます。

 

Elementクラスのプロパティを理解するElementクラスの基本構造と主要プロパティの使い方を、初心者向けにコード例付きで解説したRevitAPI入門記事です。...

よくあるエラーとその対処法

  • 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#教材

少し踏み込んだ内容まで学習でき、C#の知識が深まります。

美しいコードを書きたい人はこちら

個人的には、プログラマーひとり一冊は持っておくべきと思っている名作です^^
スポンサーリンク



Revitアドイン作ります

のんびり学習してる余裕などない!という方にご案内です。

ランサーズにてRevitのアドイン作成を承っております!

スキル、資格等の詳細はプロフィールをご覧ください。

ご質問などもお気軽にメッセージしていただければと思います。

詳しくは下の記事にまとめています。

【開発依頼】あなただけのRevitアドインを真心込めて作ります!RevitAPIを使ったアドイン開発を承ります。1から学習してアドイン作る余裕がない、外注でアドイン作成を依頼したい、という方はご利用をご検討いただければと思います^^...

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

以上です。