Hwd,
Немного потестировал. Есть замечания:
1.Хорошо бы запоминать выбранные ранее пути отдельно для исходного файла и для целевых.
2.Для вхождений дин.блоков некоторые недостающие атрибуты слетают в точку вставки блока. Наверно это связано с выравниванием этих атрибутов. Хотя, для простых блоков такого не наблюдается.
Недостающие атрибуты, те которых нет в блоке в целевом файле.
Само определение блока, после обновления, верное. И при вставке новых боков, тоже все нормально.
3.Для многострочных атрибутов удаляется форматирование.
Например мне нужно сохранять межстрочный интервал, который задан в определении блока.
ЯТД, что нужно часть строки MText.Contents, касающуюся форматирования, у многострочного атрибута в описании блока, добавлять к значению атрибута вхождения блока и записывать в мтекст этого атрибута.
upd Еще о чем подумал. Фигово получится если в блоке будет несколько атрибутов с одним тагом. У нас так часто бывает. Атрибуты отличаю по пояснению(prompt) и по слою. Конечно, это не правильно, делать атрибуты с одним тагом. Думаю тебе это можно не учитывать, а лучше запретить такую практику.
И еще. Как-нибудь поцивильнее выдавай сообщение о том, что файлы заняты (открыты кем-то другим). Сейчас выскакивает сообщение - eFileSharingViolation.
upd2
У атрибутов, позиция которых не фиксирована, лучше не менять положение и поворот. Не понятно, так у тебя и сделано, или нет. Почему то, для этих атрибутов, не устанавливается значение по умолчанию.
[S]5.У вхождений блока со скрытыми атрибутами, после обновления, эти атрибуты появляются. У вставленных блоков, после обновления, все нормально.[/S] Ошибся, это для моего рабочего блока с одинаковыми тагами.
upd3
А можно, вместо установки всех свойств атрибута из описания атрибута, выполнить SetAttributeFromBlock? А потом задать положение атрибута. Вроде так проще.
upd4 Атрибут может быть на заблокированном слое. Да и сами блоки. Надо учесть.
Пока больше не буду проверять, что-то загонятся начал (не уверен в адекватности замечаний :D).