【问题标题】:How to select all instances of family in Revit?如何在 Revit 中选择族的所有实例?
【发布时间】:2019-04-24 15:09:31
【问题描述】:

我正在为 Revit 2019 创建一个插件,并希望通过 API 选择特定族和类型的所有实例。 Revit sdk 中提供了“ElementClassFilter”来过滤元素,但我想以蓝线显示所有相同类型的实例。我已经通过“ElementClassFilter”过滤了特定类型,但正在寻找如何通过 API 在 revit 中选择它们。

以下代码用于过滤特定族和类型的元素。

ElementClassFilter filter = new ElementClassFilter(typeof(FamilyInstance));
FilteredElementCollector collector = new FilteredElementCollector(document);
collector.WherePasses(filter);
var query = from element in collector where element.Name == "Single-Standard" select element;

List<FamilyInstance> familyInstances = query.Cast<FamilyInstance>().ToList<FamilyInstance>();

但我想显示同一家族的所有实例并在下图中输入

"Window: Single-Standard" image

【问题讨论】:

  • 据我了解,您想在按下插件按钮后在 revit 界面中进行选择吗?像一个自动选择插件?
  • 是的,我想在 revit 界面中进行选择。

标签: c# revit-api revit


【解决方案1】:
UIApplication UIapp = commandData.Application;
UIDocument UIdoc = UIapp.ActiveUIDocument;
Document doc = UIdoc.Document;

FilteredElementCollector elementCollector = new FilteredElementCollector(doc);
elementCollector.OfClass(typeof(FamilyInstance));

Selection sel = UIdoc.Selection;
sel.SetElementIds(elementCollector.ToList().Select(o => o.Id).ToList()); //User selection

这是一个如何设置用户选择的简单示例。 有关 revit Selection 课程的更多信息,您可以访问此link

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-18
    • 2022-09-27
    • 2017-10-19
    • 2020-10-15
    • 2012-08-23
    相关资源
    最近更新 更多