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

取得する

GetOrderedParametersで簡単パラメータ取得法

Revitで開発を始めるときに必ず触れるのがElementクラスです。

Elementには様々なパラメータが含まれています。

パラメータの情報を取得するときにはGetOrderedParametersが役立ちます。

この記事では初心者でも簡単に理解できるように解説します。

具体的なコード例を見ながら学んでいきましょう。

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

 

 

このようにRevitの要素はElementとして扱われます。

パラメータはElementに紐づいています。

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

パラメータの取得方法

Elementのパラメータは主に二つの方法で取得できます。

GetOrderedParametersとParametersプロパティです。

ここではGetOrderedParametersの利用法を紹介します。

次のコードを見てください。

// パラメータを順序よく取得
IList<Parameter> parameters = element.GetOrderedParameters();

foreach(Parameter param in parameters)
{
    TaskDialog.Show("Param Name", param.Definition.Name);
}

 

これでパラメータの名前を簡単に取得できます。

順序も整理されています。

ElementクラスのParametersとParameterSetの基本ElementのParametersプロパティとParameterSetの基本を解説し、取得方法や活用法、エラー対策まで初心者向けに丁寧に紹介します。...

並び順の意味と活用法

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

 

 

このメソッドを呼び出すだけでパラメータを一覧表示できます。

Parametersメソッドとの違い

GetOrderedParametersとよく比較されるのがParametersプロパティです

Parametersプロパティは順番が整理されておらず、必要なパラメータが探しにくい場合があります。

比較するコード例を示します。

// Parametersプロパティでパラメータ取得
ParameterSet parameters = element.Parameters;

foreach(Parameter param in parameters)
{
    TaskDialog.Show("Param Name", param.Definition.Name);
}

 

Parametersプロパティの場合は順序が不明確です。

順序を気にしない場合にはParametersを使います。

見やすく整理する場合はGetOrderedParametersが最適です。

ElementクラスのParametersとParameterSetの基本ElementのParametersプロパティとParameterSetの基本を解説し、取得方法や活用法、エラー対策まで初心者向けに丁寧に紹介します。...

取得結果の効率的な利用法

取得したパラメータを有効に活用する方法を紹介します。

よくある例がパラメータのフィルタリングです。

特定のパラメータだけを選択できます。

// 特定パラメータのみ取得するメソッド
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#教材

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

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

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



Revitアドイン作ります

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

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

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

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

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

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

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

以上です。