EaBIM一直以来积极响应国家“十二五”推进建筑业信息化的号召,对建筑领域的信息技术开展深入技术交流和探讨!致力于打造“BIM-建筑师-生态技术”三位一体综合资源交流共享平台,希望为BIM与可持续设计理念及技术的普及做出微小的贡献!!!

萧闫子 发表于 2014-1-9 12:31:08

【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

dison 发表于 2014-2-20 14:48:41

顶!!!!!!!!!!!!!!!!!!!!!!!!!

popyfu 发表于 2015-12-1 09:31:18


学习一下

妮可 发表于 2015-12-30 10:35:16

赞!!!

EaBIM门户编辑 发表于 2016-1-25 10:20:23



很不错,支持一下。
页: [1]
查看完整版本: 【Revit 技巧】根据共享参数来过滤满足条件的对象(代码)