Files
autodesk/migration/audits/p-rec-annot-v1.0.4/README.md

8.9 KiB

Аудит P_Rec_Annot v1.0.4

Статический read-only аудит каталога C:\dev\autodesk\link\P_Rec_Annot\v1.0.4\repo. Исходник не запускался, не собирался и не изменялся. link — symbolic link на \\phpsrv03\NBIM\code\CS; каталог repo внутри ссылки — обычный directory без собственного .git.

Краткий вывод

P_Rec_Annot — не одна команда, а комплект из 25 legacy-проектов DLL в одном решении. Его ядро обслуживает орто-чертежи Plant 3D: пакетное обновление, размещение и обновление line-number annotations, автоматические осевые линии/опоры, высотные отметки, проверку отсутствующих объектов, слои viewport и ручные annotation blocks. README исходника прямо называет former OrthoTools.2019 (README.md:1-5) и перечисляет пользовательские команды (README.md:8-31).

Наиболее употребляемым в агрегате XLSX является имя P_Rec_Annot с 218 796 единицами Количество запусков. В самом исходном комплекте не найден подтверждённый writer этого счётчика: найдено только использование Environment.MachineName для выбора пользовательского индекса (GetLinenumberAnnotationText/LinenumberAnnotation.cs:225-250). Поэтому 218 796 нельзя доказательно трактовать как число ручных запусков; это внешний агрегат, семантику которого нужно подтвердить по источнику telemetry.

Факты инвентаризации

Показатель Значение
Файлов 271
C# исходников вне bin/obj/lib 120
Проектов .csproj 25
DLL в исходном комплекте 32
AutoCAD-команд, включая архивные совпадения 49
Ribbon/even-handler/database/write evidence строк 4 402+
Target framework актуальных проектов .NET Framework 4.7
Platform target x64
Решение P_Rec_Annot.sln

Подтверждённые точки входа

  • OrthoLoader реализует загрузку библиотек: читает Settings.xml, строит путь от расположения текущей DLL и вызывает Editor.Command("._netload", ...) для каждой сборки (OrthoLoader/Loader.cs:24-29, 48-82, 105-118).
  • Ribbon реализует IExtensionApplication, подписывается на ComponentManager.ItemInitialized, создаёт вкладку PluginsOrtho, восемь панелей и кнопки с командами (OrthoLoader/Ribbon.cs:16-29, 151-190, 193-377).
  • Кнопка аннотаций содержит PXP-AAV, MTO-MA и BJ; отдельные команды актуальны для line numbers, elevations, supports, layers и package update (OrthoLoader/Ribbon.cs:31-145).
  • PXP-IOD — session command пакетного обновления (UpdateOrthoDrawings/Commands.cs:519); PXP-OA и PXP-AAV запускают автоматическую обработку, но автоматического event-trigger для самих аннотаций не доказано (OrthoAutoAnnotate/Commands.cs:6444-6463, AutoAnnotateView/Commands.cs:546).

Назначение и миграция

Основной переносимый контракт — правила получения Plant 3D данных, построения текста и создания/обновления орто-аннотаций. Переносить следует после выделения Core и Plant 3D 2026 adapter. Не переносить как есть загрузчик _netload, hard-coded ссылки на AutoCAD 2019, архивные копии и не подтверждённую telemetry.

Официальная документация Plant 3D 2026 подтверждает, что штатные annotations предназначены для orthographic drawings и поддерживают annotation styles/templates: About Annotations. Штатная настройка формата выполняется через Project Setup/Class Definitions: Annotation Format for Orthographic Drawings. Это подтверждает область пересечения, но не доказывает замену корпоративных правил P_Rec_Annot. Autodesk также документирует создание и обновление Ortho, но не эквивалент всего пакетного поведения: Create an Orthographic View, About Updating Orthographic Drawings.

Нужна ли новая кнопка: да, на первом этапе миграции нужна одна явная корпоративная кнопка/команда для воспроизводимого сценария Annotate, а не набор скрытых вызовов. Предварительно: вкладка «Промхимпроект», панель «Аннотации», команда PHP_REC_ANNOT; состав операций должен выбираться режимом или отдельными безопасными командами после golden-теста.

Ответы на ключевые вопросы

  • Автоматические вызовы: обнаружены загрузочные и UI-события Ribbon, WinForms-события и временные PointMonitor; подписок CommandWillStart/ObjectModified/Idle, запускающих аннотацию, не подтверждено. Риск повторной подписки остаётся у CurrentProjectOpenedEvent.
  • DWG: код массово использует AutoCAD transactions, OpenMode.ForWrite, AppendEntity, BlockReference, MLeader, attributes и удаление старых annotation blocks; изменения проекта через Plant DataLinks читаются, прямой SQL/SQLite writer в исходниках не найден.
  • DCF/Project.xml: прямое изменение не доказано; PnPDatabase/DataLinksManager и PnPDrawings/PnPDatalinks создают косвенный риск через Plant API.
  • Повторный запуск: есть явные удаления ранее размещённых blocks в AutoAnnotateView/Commands.cs:476-500 и AutoLinenumberConnections/Commands.cs:535-558, но глобальная идемпотентность всего комплекта не доказана.
  • Undo: операции заключены в AutoCAD transactions; гарантия единого undo для пакетного сценария не доказана, нужна runtime-проверка.
  • Build: не выполнялся по ограничению задания.

Файлы отчёта

Основные выводы находятся в Markdown-файлах этого каталога. evidence/ содержит только агрегированные CSV/текстовые метаданные, без копий исходников и бинарников. Инструмент повторного read-only анализа: tools/plugin-usage/Build-PRecAnnotAudit.ps1.

Ограничения

  1. Исходный каталог содержит release DLL, DWG, DOCX, PDF и ZIP, но они не добавляются в Git и не открывались/запускались.
  2. Без Plant 3D 2019 runtime нельзя подтвердить фактические визуальные результаты, число созданных объектов, undo и семантику внешнего usage-счётчика.
  3. Сравнение 2026 ограничено официально опубликованными возможностями; полноценная замена требует runtime-сопоставления корпоративных annotation blocks и правил.