EaBIM

标题: 【Revit 技巧】根据共享参数来过滤满足条件的对象(代码) [打印本页]

作者: 萧闫子    时间: 2014-1-9 13:12
标题: 【Revit 技巧】根据共享参数来过滤满足条件的对象(代码)
我们经常会添加自己的参数到对象中,一个参数可以添加到多个类别的对象。2011提供的过滤功能可以用参数的值来进行过滤。 下面代码可以对自定义参数按照参数值进行过滤。 我们经常会添加自己的参数到对象中,一个参数可以添加到多个类别的对象。2011提供的过滤功能可以用参数的值来进行过滤。

下面代码可以对自定义参数按照参数值进行过滤。

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)]
[RegenerationAttribute(Autodesk.Revit.Attributes.RegenerationOption.Manual)]

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;
本文转自柏慕进业  QQ2581830551  Q1群212782804  Q2群218790678  电话021-55669058  微博http://q.weibo.com


作者: 影馨    时间: 2014-2-20 14:32
路过!!! 不发表意见……
作者: popyfu    时间: 2015-12-1 09:34

学习一下
作者: 妮可    时间: 2016-1-12 09:31
路过~!!!!!!!!!~~~~~~
作者: EaBIM门户编辑    时间: 2016-1-20 11:21
顶一个
作者: 妮可    时间: 2016-2-23 09:53
顶!d=====( ̄▽ ̄*)b




欢迎光临 EaBIM (https://eabim.net/) Powered by Discuz! X3.2