каким образом получить из коллекции вьюпортов конкретного листа, к примеру, 0-й вьюпорт этого листа? Он ведь не факт, что первый в коллекции? Или его ObjectId можно чему-то сопоставить/приравнять?
Если лист создавался нормально, т.е. был создан, сделан текущим и инициализирован, то :
1. Если лист активный
1.1 получаешь Database.GetViewports(true) и берешь первый лист
1.2 получаешь BlockTableRecordId, получаешгь блок листа (BlockTableRecord) находишь все Viewport, берешь с Viewport.Number==1 (1....n)
2. Если лист не активный, то делаешь по пункту 1.2, только Viewport.Number будет -1 у всех видовых экранов, поэтому сортируешь по Id и берешь первый в списке.
Если создание листов было не в "правильном порядке", нужно экспериментировать.
Возможно у листа отсутствует Layout, если лист не был инициализирован.
Либо 0й Viewport создавался последним, но при этом важно проверить, что будет после сохранения, закрытия/открытия чертежа. Возможно AutoCAD "заберет" первый Viewport?