RevitAPI

【RevitAPI】GetOrderedParametersメソッドでプロパティパレットのパラメータ取得

【RevitAPI】GetOrderedParametersメソッドでプロパティパレットのパラメータ取得

ElementクラスのGetOrderedParametersメソッドを使ってプロパティパレットで表示されているパラメータのみを取得することができます。

ここではサンプルのソースコードを用いて、GetOrderedParametersメソッドの使い方を解説します。

GetOrderedParametersメソッドについて

モデル要素のパラメータを取得するには、Elementクラスのメソッドで下表のものが利用できましたね。

メソッド 戻り値
LookupParameter Parameter
get_Parameter Parameter
Parameters ParameterSet

 

RevitAPI-Get-Parameter
【RevitAPI】モデル要素のParameter(パラメータ)を取得するRevitAPIでモデル要素のパラメータを取得する手法を紹介します。 LookupParameter サンプル Sampl...
RevitAPI-Element-Parameters-ParameterSet
【RevitAPI】Element.ParametersでParameterSetを取得ElementクラスのParametersメソッドで要素に結びついているパラメータすべてを取得できます。 Element.Para...

 

LookupParameterget_Parameter特定のパラメータを、Parametersすべてのパラメータを取得できます。

GetOrderedParametersは複数パラメータを取得するメソッドなので使い方はParametersと似ています。

ただし、Parametersメソッドの戻り値がParameterSetクラスに対してGetOrderedParametersメソッドの戻り値はIList<Parameter>です。

GetOrderedParametersのサンプルコード

サンプルのソースコードを示します。

Sample

    public void Sample()
    {
      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);
      IList<Parameter> parameterList = new List<Parameter>();
      parameterList = element.GetOrderedParameters();
      
      string result = "";
      foreach(Parameter parameter in parameterList)
      {
        InternalDefinition internalDefinition = parameter.Definition as InternalDefinition;
        string parameterValue = "";
        switch(parameter.StorageType)
        {
          case StorageType.Integer:
          case StorageType.Double:
          case StorageType.ElementId:
            parameterValue = parameter.AsValueString();
            break;
          case StorageType.String:
            parameterValue = parameter.AsString();
            break;
          case StorageType.None:
          default:
            break;
        }
      
        result += parameter.Definition.Name + "■" + parameterValue + "\n";
      }
      
      TaskDialog.Show("Message", result);
    }

GetOrderedParametersの解説

Sampleの中でElementを取得しGetOrderedParametersを適用しているのが下記の箇所です。

Sample

      Reference reference = uidoc.Selection.PickObject(ObjectType.Element);
      Element element = doc.GetElement(reference);
      IList<Parameter> parameterList = new List<Parameter>();
      parameterList = element.GetOrderedParameters();

まずはIList<Parameter>のインスタンスparameterListを初期化しておいて

Sample

      Reference reference = uidoc.Selection.PickObject(ObjectType.Element);
      Element element = doc.GetElement(reference);
      IList<Parameter> parameterList = new List<Parameter>();
      parameterList = element.GetOrderedParameters();

上2行でインスタンス化したElementクラスの変数elementGetOrderedParametersを適用しparameterListに代入しています。

 

後の処理はStorageTypeプロパティの解説

【RevitAPI】StorageTypeプロパティでParameterの型を確認する
【RevitAPI】StorageTypeプロパティでParameterの型を確認するParameterが持っている値は、Double、Integer、String、ElementIdの型うちどれかになります。 そし...

GetOrderedParametersまとめ

以上、GetOrderedParametersメソッドの解説でした。

Parametersで全パラメータを取得するとなんじゃこりゃっていうものまで出てきます。GetOrderedParametersは最低限欲しいパラメータを取得してくれるのでありがたいです。

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

 

C#独学本はこちら
コーディング学習はこちらの本がお勧めです

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください