如何在Revit中选择家庭的所有实例?

时间:2019-04-19 17:22:18

标签: c# revit-api revit

我正在为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

1 个答案:

答案 0 :(得分: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