Revitで開発を始めるときに必ず触れるのがElementクラスです。
Elementには様々なパラメータが含まれています。
パラメータの情報を取得するときにはGetOrderedParametersが役立ちます。
この記事では初心者でも簡単に理解できるように解説します。
具体的なコード例を見ながら学んでいきましょう。
Revitアドイン開発をLancersにて承っております。
詳しくは下の記事にまとめています。

GetOrderedParametersとは
GetOrderedParametersはElementクラスのメソッドの一つです。
このメソッドを使うとElementのパラメータを順番に取得でき、パラメータを整理した状態で取得できるため便利です。
実際のコード例を示します。
// Elementからパラメータ取得 IList<Parameter> parameters = element.GetOrderedParameters();
これだけでパラメータを順序よく取得できます。
後ほど詳しく解説していきます。
Elementクラスの基本知識
ElementクラスはRevitAPIで最も基本的なクラスです。
Revit内のあらゆるオブジェクトがElementとして扱われます。
例えば壁や床もすべてElementです。
Elementを理解するための簡単なコード例を示します。
public void Sample() { Autodesk.Revit.UI.UIDocument uidoc = this.ActiveUIDocument; Autodesk.Revit.DB.Document doc = uidoc.Document; // ドキュメントから壁のElementを取得 FilteredElementCollector collector = new FilteredElementCollector(doc); collector.OfClass(typeof(Wall)); foreach(Element wall in collector) { // ElementIdを表示する TaskDialog.Show("Wall ID", wall.Id.ToString()); } }
このようにRevitの要素はElementとして扱われます。
パラメータはElementに紐づいています。

パラメータの取得方法
Elementのパラメータは主に二つの方法で取得できます。
GetOrderedParametersとParametersプロパティです。
ここではGetOrderedParametersの利用法を紹介します。
次のコードを見てください。
// パラメータを順序よく取得 IList<Parameter> parameters = element.GetOrderedParameters(); foreach(Parameter param in parameters) { TaskDialog.Show("Param Name", param.Definition.Name); }
これでパラメータの名前を簡単に取得できます。
順序も整理されています。

並び順の意味と活用法
GetOrderedParametersはパラメータを一定の順序で取得します。
これはRevitが定めた順序に従い、パラメータの表示順に沿って取得されます。
順序を意識したコード例を紹介します。
// パラメータ名と値を順に取得する IList<Parameter> parameters = element.GetOrderedParameters(); foreach(Parameter param in parameters) { string paramName = param.Definition.Name; string paramValue = param.AsValueString(); TaskDialog.Show(paramName, paramValue); }
ユーザーに見やすい順序で表示されるため便利です。
コード例で実践解説
これまでのコードを使用してより具体的なコードを使って説明します。
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 element = doc.GetElement(reference); IList<Parameter> parameters = element.GetOrderedParameters(); string message = ""; foreach(Parameter param in parameters) { string paramName = param.Definition.Name; string paramValue = param.AsValueString(); message += paramName + " : " + paramValue + "\n"; } TaskDialog.Show("Parameters", message); }
このメソッドを呼び出すだけでパラメータを一覧表示できます。
Parametersメソッドとの違い
GetOrderedParametersとよく比較されるのがParametersプロパティです
Parametersプロパティは順番が整理されておらず、必要なパラメータが探しにくい場合があります。
比較するコード例を示します。
// Parametersプロパティでパラメータ取得 ParameterSet parameters = element.Parameters; foreach(Parameter param in parameters) { TaskDialog.Show("Param Name", param.Definition.Name); }
Parametersプロパティの場合は順序が不明確です。
順序を気にしない場合にはParametersを使います。
見やすく整理する場合はGetOrderedParametersが最適です。

取得結果の効率的な利用法
取得したパラメータを有効に活用する方法を紹介します。
よくある例がパラメータのフィルタリングです。
特定のパラメータだけを選択できます。
// 特定パラメータのみ取得するメソッド public Parameter GetParameterByName(Element element, string name) { IList<Parameter> parameters = element.GetOrderedParameters(); foreach(Parameter param in parameters) { if(param.Definition.Name == name) { return param; } } return null; }
まとめとポイント整理
以上、GetOrderedParametersによるParameter取得の紹介でした。
以下のポイントを意識して活用してみてください^^
- GetOrderedParametersで順序よく取得可能です。
- Parametersプロパティより整理されています。
- 特定のパラメータ抽出にも便利です。
最後まで読んでいただきありがとうございました。
RevitAPI独学用教材
最後に教材等を紹介します。
RevitAPIを理解してプログラムを作れるようになるには、C#の知識が必要です。
下記、オススメの参考書です。
プログラムが初心者にオススメのC#教材
プログラムの基礎知識がある人にオススメのC#教材
美しいコードを書きたい人はこちら
Revitアドイン作ります
のんびり学習してる余裕などない!という方にご案内です。
スキル、資格等の詳細はプロフィールをご覧ください。
ご質問などもお気軽にメッセージしていただければと思います。
詳しくは下の記事にまとめています。

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