Итак, по порядку.
Для подключения каталога труб и колодцев требуется задать:
Папку каталога (1)
Каталог, из которого будут браться настройки для труб (2)
Каталог, из которого будут браться настройки для колодцев (3)
Когда изменяется папка каталога, Civil сканирует указанную папку по следующему принципу:
Ищутся все папки в указанном расположении.
В каждой папке ищется файл .apc с именем, соответствующем имени папки.
Если файл .apc обнаружен - из него читается название каталога и раздел, к которому он относится (труба или колодец).
Из полученных из файлов .apc данных формируются списки имён, которые будут доступны для выбора каталога труб (2) и каталога колодцев (3).
Когда изменяются эти настройки, Civil 3D записывает данные в реестр в раздел: HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\RXX.X\ACAD-X000:XXX\Profiles\<<ИМЯ_ПРОФИЛЯ>>\Preferences\AeccUiNetworkXXX
Где вместо X - числа, зависящие от версии Civil 3D.
Изменяются три ключа:
1. SharedContentPath - в него записывается путь к папке "Aecc Shared Content" внутри папки каталога (1). Это определяет, какая папка каталога подключена в данный момент для всего приложения Civil 3D этой версии для текущего пользователя Windows и текущего профиля AutoCAD.
2. Ключ с именем в виде GUID формата XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX - в него записывается путь к файлу .apc, который определяет настройки каталога труб (2). Файл имеет XML структуру. Внутри этого файла .apc есть корневой элемент pXML с атрибутом id в формате GUID. Civil читает это значение и записывает как имя ключа.
3. То же самое, но для каталога колодцев.
Если ключи с такими именами уже существовали ранее, они перезаписываются. Если отсутствовали - создаются заново. То есть, в реестре просто хранятся данные о том, какие GUID каталогов использовались и где можно найти соответствующие им файлы. Это просто список, из которого однозначно нельзя определить, какой каталог труб или колодцев подключен в данный момент.
Далее - один неочевидный момент. Какой именно каталог труб и каталог колодцев подключен из заданной папки каталога - задаётся отдельно для каждого чертежа и сохраняется внутри него! Хранятся эти данные внутри недоступного для открытых API месте - в объекте AeccDbSettingsNode. Исследования показали, что, скорее всего, туда записывается GUID подключенных каталогов.
Итак, получается такая картина. Когда запускается Civil 3D сперва читается значение ключа SharedContentPath и определяется папка подключенного каталога. Затем, читаются все GUID-ключи. Когда открывается чертёж, из него получаются GUID'ы подключенных каталогов и определяется путь к ним по GUID-ключам. Есть ещё дополнительная проверка того, что назначенные чертежу каталоги находятся внутри папки подключенного в данный момент каталога.
Ну и напоследок. Civil 3D читает значение ключа SharedContentPath каждый раз при запуске инструментов, использующих каталог. Но изменение этого ключа при уже запущенном Civil 3D не даёт никакого эффекта. Пожалуй, единственное, на что это может повлиять - при запуске команды назначения каталога там будет указан путь, прописанный в данный момент в реестре. Ключи-GUID'ы читаются только при запуске Civil, так что, их изменение во время работы Civil не даст вообще ничего. Изменения "подхватятся" только после повторного запуска приложения.