Autodesk.Revit.DB.BoundingBoxContainsPointFilter是用于Revit软件中得到一个包含在特定边界框内的点的过滤器。该过滤器用于ViewFilter类的构造函数参数。
BoundingBoxContainsPointFilter构造函数的声明如下:
public BoundingBoxContainsPointFilter(BoundingBoxXYZ bbox, XYZ point)
以下代码示例显示如何设置 BoundingBoxContainsPointFilter 过滤器并生成从结果单独显示的视图。
// bbox是在3D视图内的边界框
// point是XYZ类型的一个点,用于指定要查询在bbox内的点
BoundingBoxContainsPointFilter boundingBoxFilter = new BoundingBoxContainsPointFilter(bbox, point);
FilteredElementCollector collector = new FilteredElementCollector(doc, viewId);
IEnumerable<Element> elements = collector.WherePasses(viewFilter).WherePasses(boundingBoxFilter).ToElements();
// 新建一个视图,将结果显示在其中
using (Transaction t = new Transaction(doc))
{
t.Start("Create View");
View3D view = View3D.CreateIsometric(doc, viewFamilyType.Id);
view.SetSectionBox(bbox);
foreach (Element element in elements)
{
view.ShowElements(new ElementId[] {element.Id});
}
t.Commit();
}