Autodesk.Revit.DB.ModelCurveArrArrayIterator是Revit API中的一个类,用于迭代和访问Revit项目中的多个ModelCurve数组。
Autodesk.Revit.DB.ModelCurveArrArrayIterator有两个构造函数:
ModelCurveArrArrayIterator(ModelCurveArrayArray modelCurveArrArray)
:使用一个ModelCurveArrayArray对象初始化ModelCurveArrArrayIterator对象。ModelCurveArrArrayIterator(IEnumerable<ModelCurveArray> modelCurvesArrsEnumerable)
:使用一个IEnumerable<ModelCurveArray>对象初始化ModelCurveArrArrayIterator对象。以下是ModelCurveArrArrayIterator类的重要方法:
void Dispose()
释放ModelCurveArrArrayIterator对象。
bool MoveNext()
将枚举器推进到ModelCurveArray数组的下一个元素。
ModelCurveArrayArray ToArray()
返回一个ModelCurveArrayArray对象,其中包含所有的ModelCurveArray数组。
ModelCurveArrayList ToList()
返回一个ModelCurveArrayList对象,其中包含所有的ModelCurveArray数组。
以下示例演示如何使用ModelCurveArrArrayIterator类来迭代和访问Revit项目中的ModelCurve数组:
// 获取当前文档
Document doc = _
Autodesk.Revit.UI.UIApplication.ActiveUIDocument.Document;
// 获取所有的ModelCurve数组
FilteredElementCollector collector = new FilteredElementCollector(doc);
IList<Element> elements = collector.OfClass(typeof(ModelCurve)).ToElements();
ModelCurveArray[] modelCurveArrays =
new ModelCurveArray[] { elements.Cast<ModelCurve>().ToArray() };
// 实例化一个ModelCurveArrArrayIterator对象
ModelCurveArrArrayIterator iter = new ModelCurveArrArrayIterator(modelCurveArrays);
// 迭代器遍历所有ModelCurve数组
while (iter.MoveNext())
{
ModelCurveArray modelCurves = iter.Current;
// 遍历当前ModelCurve数组
foreach (ModelCurve modelCurve in modelCurves)
{
// 将当前的ModelCurve打印出来
TaskDialog.Show("ModelCurve", modelCurve.ToString());
}
}
以上示例代码将打印出文档中所有的ModelCurve元素。