private void GetDataFromSheets(Document doc)
{
// Получаем листы в документе
IList<Element> viewSheetElements = new FilteredElementCollector(doc).OfClass(typeof(ViewSheet)).ToElements();
// Получаем все штампы
FilteredElementCollector titleBlocks = new FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_TitleBlocks);
// делаем итерацию по листам
foreach (var element in viewSheetElements)
{
var viewSheetElement = (ViewSheet) element;
if (!viewSheetElement.IsTemplate && viewSheetElement.ViewType == ViewType.DrawingSheet)
{
GetDataFromTitleBlocks(viewSheetElement, titleBlocks);
}
}
}
private void GetDataFromTitleBlocks(ViewSheet viewSheet, FilteredElementCollector titleBlocks)
{
foreach (Element element in titleBlocks)
{
if (element.OwnerViewId.IntegerValue != viewSheet.Id.IntegerValue) continue;
if (element is FamilyInstance familyInstance)
{
// some code
}
}
}