【Revit 技巧】根据共享参数来过滤满足条件的对象(代码)
我们经常会添加自己的参数到对象中,一个参数可以添加到多个类别的对象。2011提供的过滤功能可以用参数的值来进行过滤。 下面代码可以对自定义参数按照参数值进行过滤。 我们经常会添加自己的参数到对象中,一个参数可以添加到多个类别的对象。2011提供的过滤功能可以用参数的值来进行过滤。下面代码可以对自定义参数按照参数值进行过滤。
<font size="4" style="color: rgb(105, 105, 105); font-family: 'Microsoft Yahei', Simsun; ">
</font><font size="1" style="color: rgb(105, 105, 105); font-family: 'Microsoft Yahei', Simsun; ">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 ;
public class ParamFilterTest : IExternalCommand
{
public Result Execute(
ExternalCommandData commandData,
ref string message,
ElementSet elements)
{
UIApplication uiapp = commandData.Application;
UIDocument uidoc = uiapp.ActiveUIDocument;
Application app = uiapp.Application;
Document doc = uidoc.Document;
Wall wall = uidoc.Selection.PickObject(
Autodesk.Revit.UI.Selection.ObjectType.Element)
.Element as Wall;
Parameter parameter = wall.get_Parameter(
"MyShared");
ParameterValueProvider pvp
= new ParameterValueProvider(parameter.Id);
FilterStringEquals strEquals = new FilterStringEquals();
FilterStringRule sRule = new FilterStringRule(pvp, strEquals, "MyValue", true);
ElementParameterFilter filter
= new ElementParameterFilter(sRule);
FilteredElementCollector collector
= new FilteredElementCollector(doc);
collector.WherePasses(filter);
TaskDialog.Show("count", collector.ToElementIds().Count.ToString());
return Result.Succeeded;</font>
本文转自柏慕进业QQ2581830551Q1群212782804Q2群218790678电话021-55669058微博http://q.weibo.com
顶!!!!!!!!!!!!!!!!!!!!!!!!!
学习一下 赞!!!
很不错,支持一下。
页:
[1]