EaBIM

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

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

下面代码可以对自定义参数按照参数值进行过滤。
  1. <font size="4" style="color: rgb(105, 105, 105); font-family: 'Microsoft Yahei', Simsun; ">
  2. </font><font size="1" style="color: rgb(105, 105, 105); font-family: 'Microsoft Yahei', Simsun; ">using System;
  3. using System.Collections.Generic;
  4. using System.Text;
  5. //using System.Windows.Forms;

  6. using Autodesk.Revit .DB;
  7. using Autodesk.Revit.UI;
  8. using Autodesk.Revit .ApplicationServices;
  9. using Autodesk.Revit.Attributes ;

  10. [TransactionAttribute(Autodesk.Revit.Attributes.TransactionMode.Manual)]
  11. [RegenerationAttribute(Autodesk.Revit.Attributes.RegenerationOption.Manual)]

  12. public class ParamFilterTest : IExternalCommand
  13. {
  14. public Result Execute(
  15. ExternalCommandData commandData,
  16. ref string message,
  17. ElementSet elements)
  18. {
  19. UIApplication uiapp = commandData.Application;
  20. UIDocument uidoc = uiapp.ActiveUIDocument;
  21. Application app = uiapp.Application;
  22. Document doc = uidoc.Document;

  23. Wall wall = uidoc.Selection.PickObject(
  24. Autodesk.Revit.UI.Selection.ObjectType.Element)
  25. .Element as Wall;

  26. Parameter parameter = wall.get_Parameter(
  27. "MyShared");

  28. ParameterValueProvider pvp
  29. = new ParameterValueProvider(parameter.Id);

  30. FilterStringEquals strEquals = new FilterStringEquals();

  31. FilterStringRule sRule = new FilterStringRule(pvp, strEquals, "MyValue", true);

  32. ElementParameterFilter filter
  33. = new ElementParameterFilter(sRule);

  34. FilteredElementCollector collector
  35. = new FilteredElementCollector(doc);

  36. collector.WherePasses(filter);
  37. TaskDialog.Show("count", collector.ToElementIds().Count.ToString());

  38. return Result.Succeeded;</font>
复制代码

本文转自柏慕进业  QQ2581830551  Q1群212782804  Q2群218790678  电话021-55669058  微博http://q.weibo.com


作者: dison    时间: 2014-2-20 14:48
顶!!!!!!!!!!!!!!!!!!!!!!!!!
作者: popyfu    时间: 2015-12-1 09:31

学习一下
作者: 妮可    时间: 2015-12-30 10:35
赞!!!
作者: EaBIM门户编辑    时间: 2016-1-25 10:20


很不错,支持一下。




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