ElementクラスのGetOrderedParametersメソッドを使ってプロパティパレットで表示されているパラメータのみを取得することができます。
ここではサンプルのソースコードを用いて、GetOrderedParametersメソッドの使い方を解説します。
スポンサーリンク
もくじ
GetOrderedParametersメソッドについて
モデル要素のパラメータを取得するには、Elementクラスのメソッドで下表のものが利用できましたね。
メソッド | 戻り値 |
LookupParameter | Parameter |
get_Parameter | Parameter |
Parameters | ParameterSet |
【RevitAPI】モデル要素のParameter(パラメータ)を取得するRevitAPIでモデル要素のパラメータを取得する手法を紹介します。
LookupParameter
サンプル
S...
【RevitAPI】Element.ParametersでParameterSetを取得ElementクラスのParametersメソッドで要素に結びついているパラメータすべてを取得できます。
Element.Para...
LookupParameterやget_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);
}
{
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();
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();
Element element = doc.GetElement(reference);
IList<Parameter> parameterList = new List<Parameter>();
parameterList = element.GetOrderedParameters();
上2行でインスタンス化したElementクラスの変数elementにGetOrderedParametersを適用しparameterListに代入しています。
後の処理はStorageTypeプロパティの解説
【RevitAPI】StorageTypeプロパティでParameterの型を確認するParameterが持っている値は、Double、Integer、String、ElementIdの型うちどれかになります。
そし...
GetOrderedParametersまとめ
以上、GetOrderedParametersメソッドの解説でした。
Parametersで全パラメータを取得するとなんじゃこりゃっていうものまで出てきます。GetOrderedParametersは最低限欲しいパラメータを取得してくれるのでありがたいです。
最後まで読んでいただき、ありがとうございました!
C#独学本はこちら
コーディング学習はこちらの本がお勧めです
スポンサーリンク