ADN Club => Revit API => Тема начата: sdv79 от 28-12-2020, 18:54:58
Название: EraseSchemaAndAllEntities
Отправлено: sdv79 от 28-12-2020, 18:54:58
Schema.EraseSchemaAndAllEntities позволяет удалить Хранилище (схему) во всех открытых документах. Данный код работает на одном документе, как заставить это работать для всех открытых документов (проблема с транзакциями), или как удалить все хранилища во всех отрытых документах? https://www.revitapidocs.com/2019/80983aac-0cca-c211-1c7b-b5350624f046.htm
Название: Re: EraseSchemaAndAllEntities
Отправлено: Александр Игнатович от 28-12-2020, 20:14:31
Да, он нормально не работает, но, вообще говоря, он должен использоваться только для отладки.
Его можно починить (условно, см. дальше), если в каждом документе (Application.Documents) запустить транзакцию - собрать транзакции в список, потом вызвать метод EraseSchemaAndAllEntities, а потом пройтись по полученному списку транзакций и закоммитить каждую.
Почему условно? Если документ является связанным файлом, то транзакцию в нем ты не запустишь.
Ну и ещё почитай Remarks в описании метода.
Название: Re: EraseSchemaAndAllEntities
Отправлено: sdv79 от 28-12-2020, 20:49:43
Пробовал так. При наполнении списка транзакциями, выдает ошибку - не закончена предыдущая :(
Название: Re: EraseSchemaAndAllEntities
Отправлено: Александр Игнатович от 29-12-2020, 09:46:05
Видимо, ты где-то ошибся.
Название: Re: EraseSchemaAndAllEntities
Отправлено: sdv79 от 29-12-2020, 10:39:02
Да, была ошибка. Заработало, спасибо.
Название: Re: EraseSchemaAndAllEntities
Отправлено: Александр Игнатович от 29-12-2020, 10:43:55