RevitAPIでモデル要素のパラメータを取得する手法を紹介します。
ElementクラスのLookupParameterメソッド、get_Parameterメソッドが有効っす!
スポンサーリンク
LookupParameter
サンプル
Sample1
public void Sample1()
{
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);
try
{
Parameter lookupParameter = element.LookupParameter(“コメント”);
string result = lookupParameter.AsString();
TaskDialog.Show(“Message”, result);
}
catch
{
TaskDialog.Show(“Message”, “パラメータがありません”);
}
}
{
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);
try
{
Parameter lookupParameter = element.LookupParameter(“コメント”);
string result = lookupParameter.AsString();
TaskDialog.Show(“Message”, result);
}
catch
{
TaskDialog.Show(“Message”, “パラメータがありません”);
}
}
解説
でパラメータを取得しています。
左辺でParameterクラスの変数lookupParameterを定義して
右辺で実行したElementクラスのメソッドLookupParameterの戻り値を代入しています。
取得対象のパラメータはLookupParameterの引数に日本語パラメータ名で直接指定します。
コメントパラメータに何か値を入れて試してみてください!
【注意!】
パラメータ名は重複が許容されます。同じ名前のパラメータが存在するときには、同名の別パラメータ値が拾われる可能性があります。
get_Parameter
サンプル
Sample2
public void Sample2()
{
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);
try
{
Parameter get_Parameter = element.get_Parameter(BuiltInParameter.ALL_MODEL_INSTANCE_COMMENTS);
string result = get_Parameter.AsString();
TaskDialog.Show(“Message”, result);
}
catch
{
TaskDialog.Show(“Message”, “パラメータがありません”);
}
}
{
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);
try
{
Parameter get_Parameter = element.get_Parameter(BuiltInParameter.ALL_MODEL_INSTANCE_COMMENTS);
string result = get_Parameter.AsString();
TaskDialog.Show(“Message”, result);
}
catch
{
TaskDialog.Show(“Message”, “パラメータがありません”);
}
}
解説
でパラメータを取得しています。
左辺でParameterクラスの変数get_Parameterを定義して
右辺で実行したElementクラスのメソッドget_Parameterの戻り値を代入しています。
取得対象のパラメータはget_Parameterの引数にBuiltInParameterの列挙子を指定します。
こちらのサンプルではコメントパラメータをBuiltInParameterで取得するように指定しています。
BuiltInParameterの列挙子は唯一無二の値なので、重複することはありませんよ。
まとめ
以上、モデル要素のパラメータ取得のサンプルでした。
言わずもがなget_Parameterメソッドの方がお勧めですよ笑
両方ともElementクラスのメソッドです。なのでモデル要素のパラメータだけでなくElementクラスからの派生要素にも有効ですよ~。
最後まで読んでいただき、ありがとうございました!
C#初心者の僕が独学でお世話になった本
プログラミング初心者の僕がコーディング学習でお世話になった本
スポンサーリンク