ElementArrayIterator是一个C#类,它允许用户遍历Revit中的元素集合。这些元素可以是单个元素的数组或者一个元素的集合,例如在一个视图中选择的元素集合。ElementArrayIterator实现了IEnumerator接口,并且可以与foreach语句一起使用。
创建一个ElementArrayIterator对象时,需要传入一个包含元素的数组或集合。
public ElementArrayIterator(Element[] elements)
public ElementArrayIterator(ICollection<Element> elements)
ElementArrayIterator类公开了三个只读属性:
ElementArrayIterator类公开了以下方法:
ElementArrayIterator实现了IEnumerator接口,因此可以与C#的foreach语句一起使用。以下示例演示了如何使用foreach语句遍历元素集合中的所有元素:
ElementArrayIterator iterator = new ElementArrayIterator(elements);
foreach (Element element in iterator)
{
// Do something with the element
}
以下示例演示了如何使用ElementArrayIterator类遍历当前视图中所有的墙。
// 获取当前视图
View activeView = doc.ActiveView;
// 获取当前视图中所有的墙
FilteredElementCollector collector = new FilteredElementCollector(doc, activeView.Id);
IList<Element> wallElements = collector.OfClass(typeof(Wall)).ToElements();
// 使用ElementArrayIterator遍历墙元素集合
ElementArrayIterator iterator = new ElementArrayIterator(wallElements);
while (!iterator.IsDone)
{
Wall wall = iterator.Current as Wall;
// Do something with the wall
iterator.MoveNext();
}