ElementクラスのGetOrderedParametersメソッドを使ってプロパティパレットで表示されているパラメータのみを取得することができます。
ここではサンプルのソースコードを用いて、GetOrderedParametersメソッドの使い方を解説します。
もくじ
GetOrderedParametersメソッドについて
モデル要素のパラメータを取得するには、Elementクラスのメソッドで下表のものが利用できましたね。
メソッド | 戻り値 |
LookupParameter | Parameter |
get_Parameter | Parameter |
Parameters | ParameterSet |
https://kizarukun.com/revitapi-element-parameter
https://kizarukun.com/revitapi-element-parameterset
LookupParameterやget_Parameterで特定のパラメータを、Parametersですべてのパラメータを取得できます。
GetOrderedParametersは複数パラメータを取得するメソッドなので使い方はParametersと似ています。
ただし、Parametersメソッドの戻り値がParameterSetクラスに対してGetOrderedParametersメソッドの戻り値はIList<Parameter>です。
GetOrderedParametersのサンプルコード
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
Element element = doc.GetElement(reference);
IList<Parameter> parameterList = new List<Parameter>();
parameterList = element.GetOrderedParameters();
まずはIList<Parameter>のインスタンスparameterListを初期化しておいて
Sample
Element element = doc.GetElement(reference);
IList<Parameter> parameterList = new List<Parameter>();
parameterList = element.GetOrderedParameters();
上2行でインスタンス化したElementクラスの変数elementにGetOrderedParametersを適用しparameterListに代入しています。
後の処理はStorageTypeプロパティの解説

GetOrderedParametersまとめ
以上、GetOrderedParametersメソッドの解説でした。
最後まで読んでいただき、ありがとうございました!