2017-10-03 2 views
2

動作しない私は、オートデスクのヘルプにビューフィルタが

http://help.autodesk.com/view/RVT/2014/ENU/?guid=GUID-B6FB80F2-7A17-4242-9E95-D6056090E85B コードを実行しようとしていますが、動作しないようです。コード "FirstElement ().get_Parameter(" Comments ");" は機能しません。そのような機能はありません。

Revit encoutered a System.MissingMethodException; Method not found:'AutoDesk.Revit.DB.Parameter Autodesk.Revit.DB.Element.get_Parameter(System.String)

このコードで間違っては何ですか:

は、私は次のエラーを得ましたか。

private void CreateViewFilter(Autodesk.Revit.DB.Document doc, View view) 
    { 
    List<ElementId> categories = new List<ElementId>(); 
    categories.Add(new ElementId(BuiltInCategory.OST_Walls)); 
    ParameterFilterElement parameterFilterElement = 
    ParameterFilterElement.Create(doc, "Comments = foo", categories); 

    FilteredElementCollector parameterCollector = new FilteredElementCollector 
    (doc); 
    Parameter parameter = parameterCollector.OfClass(typeof(Wall)).FirstElement 
    ().get_Parameter("Comments"); 

    List<FilterRule> filterRules = new List<FilterRule>(); 
    filterRules.Add(ParameterFilterRuleFactory.CreateEqualsRule 
    (parameter.Id, "foo", true)); 
     parameterFilterElement.SetRules(filterRules); 


    OverrideGraphicSettings filterSettings = new OverrideGraphicSettings(); 
    // outline walls in red    
    filterSettings.SetProjectionLineColor(new Color(255, 0, 0)); 
    view.SetFilterOverrides(parameterFilterElement.Id, filterSettings); 
    } 
+0

エラーメッセージなどの詳細情報を提供できますか? – DiskJunky

+1

次のエラーが表示されます。「RevitがSystem.MissingMethodExceptionをエンコードしました。メソッドが見つかりません: 'AutoDesk.Revit.DB.Parameter Autodesk.Revit.DB.Element.get_Parameter(System.String)」 – uakam

+0

これはlookupparameterで動作しますが私はコマンドを複数回繰り返すと別のエラーが出る。エラーは言う:RevitはargumentExceptionに遭遇する。指定されたnameの値は、すでにフィルタ要素名のパラメータ名として使用されています。ParameterFilterElementの名前name:ParameterFilterElement = ParameterFilterElement.Create(doc、 "Comments = foo"、categories); – uakam

答えて

0

ヘルプバージョン(2014)とは異なるバージョンのRevitを使用していると思いますか?

私はget_Parameterがいくつかのバージョンから廃止されていると思います。

あなたがLookupParameterで試すことができます。

...FirstElement().LookupParameter("Comments"); 

または最終的にGetParameters、しかし慎重に、これはコレクションを返します。

...FirstElement().GetParameters("Comments"); 

(リンクは最後のバージョンを参照していますが簡単に確認することができます同じサイトの別のものについては、Revit 2015以降は2つの方法は変更されていません。)

+0

ありがとう、それはlookupparameterで動作しますが、コマンドを2回以上繰り返すと別のエラーが発生します。エラーは言う:RevitはargumentExceptionに遭遇する。指定されたnameの値は、すでにフィルタ要素名のパラメータ名として使用されています。ParameterFilterElementの名前name:ParameterFilterElement = ParameterFilterElement.Create(doc、 "Comments = foo"、categories); – uakam

+0

興味深いことに、なぜこのエラーが発生するのか分かりません。どのようにコードを正確に繰り返すのですか?このようなエラーは、2つのフィルタに同じ名前を付けるときに起こります( 'name'は2番目のパラメータ' 'Comment = foo" 'です)。コード、例外と一緒に、別の質問を書いたほうがいいかもしれません。これは他の人を助けるものです。 (あなたはここにあるいくつかの回答を受け入れる必要があります。それは次の訪問者が解決策を見つけるのを助け、著者を幸せにします;-)) – PRMoureu

+0

ありがとう!私は答えを受け入れることによって何を意味するのだろうか?私はボタンを見つけることができませんでした、または同様の "正しい"答えをマークするが、私はあなたの答えが働いたことを言及した。他の方法はありますか? – uakam

関連する問題