帮助中的视图过滤器不起作用

时间:2017-10-03 16:24:40

标签: c# api view filter revit

我正在尝试运行Autodesk帮助中的代码

http://help.autodesk.com/view/RVT/2014/ENU/?guid=GUID-B6FB80F2-7A17-4242-9E95-D6056090E85B  但似乎没有用。代码“FirstElement         ().get_Parameter( “注释”);” 不工作。没有这样的功能。

我收到以下错误:

  

Revit遇到了System.MissingMethodException;找不到方法:'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);
    }

1 个答案:

答案 0 :(得分:0)

我猜您使用的Revit版本与帮助版本(2014年)不同?

我认为get_Parameter已被弃用,因为有几个版本。

您可以尝试使用LookupParameter

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

或最终GetParameters,但要小心,这个会返回一个集合:

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

(链接指的是最后一个版本,但您可以在同一个站点上轻松检查另一个版本,自Revit 2015以来,这2个方法看起来没有变化。)