Autodesk.Revit.DB.PaperSizeSetIterator
类是用于枚举Revit文档中可用纸张尺寸集合的迭代器。此类提供了访问文档中所有纸张尺寸的方法。
PaperSizeSetIterator(PaperSizeSet paperSizes)
: 创建一个用于迭代指定PaperSizeSet
中纸张尺寸的迭代器。Current
: 获取当前所在位置的纸张尺寸。MoveNext()
: 将迭代器移到下一个可用纸张尺寸处。如果没有其他纸张尺寸,MoveNext()
方法将返回 false。
Reset()
: 将迭代器重置到第一个可用纸张尺寸。
以下示例演示如何使用PaperSizeSetIterator
枚举文档中所有纸张尺寸:
// 获取当前文档对象
Document doc = this.ActiveUIDocument.Document;
// 获取文档中所有纸张尺寸集合
IEnumerable<PaperSizeSet> paperSizeSets = new FilteredElementCollector(doc).OfClass(typeof(PaperSizeSet)).Cast<PaperSizeSet>();
// 获取第一个纸张尺寸集合
PaperSizeSet firstPaperSizeSet = paperSizeSets.FirstOrDefault();
if (firstPaperSizeSet != null)
{
// 创建迭代器
PaperSizeSetIterator iterator = new PaperSizeSetIterator(firstPaperSizeSet);
// 枚举所有纸张尺寸
while (iterator.MoveNext())
{
PaperSize currentPaperSize = iterator.Current;
// do something with currentPaperSize
}
}
PaperSizeSetIterator
不支持修改纸张尺寸集合。如果需要更改设置,请使用 Transaction
对象开启一个事务。
在使用迭代器枚举过程中,文档中的纸张尺寸集合可能会被更改。如果将纸张尺寸集合更改为已枚举的区域,则将引发InvalidOperationException
异常。