Цель
Привет всем, я работаю над созданием кнопки в Revit, которая предназначена для добавления одного окна просмотра на новый лист, а затем изменения окна просмотра для отображения viewTitle вместо того, чтобы быть пустой или просто строкой
Ошибка
Когда я запускаю кнопку в первый раз, все работает, за исключением того, что заголовок представления не установлен для загруженного семейства хотя "строка" заголовка вида отображается. Моя ошибка возникает, когда я нажимаю кнопку во второй раз.
Это ошибка, которую я получаю, когда пытаюсь запустить кнопку второй раз:
Exception thrown: 'Autodesk.Revit.Exceptions.InternalException' in RevitAPI.dll
A managed exception was thrown by Revit or by one of its external applications.
Ошибка возникает в этой строке :
Viewport newViewPort = Viewport.Create(doc, viewSheet.Id, duplicatedPlan2Copy, new XYZ(location.U, location.V, 0));
Исследование
Из того, что я исследовал, кнопка пытается получить доступ к элементу, к которому уже осуществляется доступ, но если я меняю scale, я смогу изменить ViewTitle. См. Ссылки внизу этого вопроса
вот часть моего кода , который находится в транзакции
FamilySymbol firstSheet = colTitleBlocks.FirstElement() as FamilySymbol;
ViewSheet viewSheet = ViewSheet.Create(doc, firstSheet.Id);
UV location = new UV((viewSheet.Outline.Max.U - viewSheet.Outline.Min.U) / 2,
(viewSheet.Outline.Max.V - viewSheet.Outline.Min.V) / 2);
ElementId duplicatedPlan2Copy = duplicatedPlan.Duplicate(ViewDuplicateOption.WithDetailing);
Viewport newViewPort = Viewport.Create(doc, viewSheet.Id, duplicatedPlan2Copy, new XYZ(location.U, location.V, 0));
Выводы Я обнаружил, что если я удалю эту строку из своего кода: bool elementType = doc.GetElement(newViewPort.GetTypeId()).get_Parameter(BuiltInParameter.VIEWPORT_ATTR_LABEL_TAG).Set(viewTitleIdCommand);
Она работает и может создавать новые листы и размещать окна просмотра с заголовком вида только многократно.
Любая помощь ценится. Эта ссылка здесь показывает, как две отдельные транзакции решили проблему, но я попробовал, и это не сработало. здесь что-то похожее
Вот ссылка на мой другой связанный вопрос, касающийся кнопки