如何编程创建Revit里面的视图过滤器对象

来源:互联网 发布:windows禁止arp 编辑:程序博客网 时间:2024/05/17 03:06


通过Revit界面“视图或View”命令选项卡下的“过滤器或Filters”, 用户可以创建自己的过滤器对象。这样你可以为你的过滤器结果设置不同的显示样式和特征。


通过Revit 的API同样可以实现编程创建视图过滤器。


下面这些代码演示了如何创建一个柱子类型的视图过滤器(给定柱子的名称)。从这里可以了解创建的过程和需要调用的函数。

注意: 这里给类型名称的内置参数是:

ALL_MODEL_TYPE_NAME


using System;using System.Collections.Generic;using System.Text;using System.Windows.Forms;using Autodesk.Revit.DB;using Autodesk.Revit.UI;using Autodesk.Revit.ApplicationServices;using Autodesk.Revit.Attributes;[TransactionAttribute(Autodesk.Revit.Attributes.TransactionMode.Manual)]public class RevitCommand : IExternalCommand{  public Result Execute(ExternalCommandData commandData, ref string messages, ElementSet elements)  {    UIApplication app = commandData.Application;    Document doc = app.ActiveUIDocument.Document;    Transaction trans = new Transaction(doc, "ExComm");    trans.Start();    List<ElementId> categories = new List<ElementId>();    categories.Add(new ElementId(BuiltInCategory.OST_Columns));    ParameterFilterElement parameterFilterElement = ParameterFilterElement.Create(doc, "Comments = foo", categories);    parameterFilterElement.Name = "JoeTest";    FilteredElementCollector parameterCollector = new FilteredElementCollector(doc);    Parameter parameter = parameterCollector.OfClass(typeof(FamilySymbol)).FirstElement().get_Parameter(BuiltInParameter.ALL_MODEL_TYPE_NAME);    List<FilterRule> filterRules = new List<FilterRule>();    filterRules.Add(ParameterFilterRuleFactory.CreateEqualsRule(parameter.Id, "610 x 610mm", true));    parameterFilterElement.SetRules(filterRules);    trans.Commit();    return Result.Succeeded;  }}


原创粉丝点击