Модель (проект) Navisworks
Прим. автора - не уверен, как это правильно называется, называю из логики работы.
Проект у приложения Navisworks существует в единственном экземпляре и характеризует некоторую загруженную модель с рядом файлов, точек обзора, настройками визуализации и т.д. Функции работы с проектом доступны через COM-оболочку InwOpState с суффиксами до 11 включительно. Возможно, так развивалось API - путем добавления новой функциональности в новую COM-оболочку с соответствующим суффиксом. При использовании динамической типизации (dynamic) нет разницы к чему приводить полученный у приложения State - все методы "номерных" оболочек можно применять и к базовому InwOpState.
Для удобства, можете считать, что модель Navisworks описывается COM-оболочкой InwOpState11 , которая наследует все методы от базовой InwOpState. Далее будем рассматривать функциональность InwOpState без привязки к версии (фактически, будем говорить о InwOpState11).
Для удобства, в таблице ниже приведена информация, каким элементам UI соответствуют методы COM-оболочек InwOpState** и краткая справка, что они делают.
Как читать третью колонку:
- "✅" - если для метода COM-оболочки имеется прямое соответствие в UI;
- "🔧" - различные внутренние технические методы;
- "❓" - автор не уверен в точной идентификации;
| Метод интерфейса InwOpState | Чему соответствует в Naviworks | UI |
|---|---|---|
| InwOpState | ||
| NumTriangles | Главная - Проект - Окно "Статистика сцены", числовое значение напротив "Треугольников, линий и точек:" | ✅ |
| GetBoundingBox | Главная - Проект - Окно "Статистика сцены", значение напротив "Ограничивающий параллелепипед:" | ✅ |
| GlobalAmbient | Контекстное меню модели - Параметры файла - Освещение сцены - Ползунок для рассеянного цвета | ✅ |
| SceneLights | Прямого соответствия нет. Информация о расположении источников света в загруженных файлах (например, камеры (?) в DWG) | |
| CreatePlugin | Технический метод, создание пользовательского COM-плагина | 🔧 |
| Plugins | Технический метод, перечисление всех пользовательских плагинов | 🔧 |
| SavedViews | Вид - Рабочее пространство - Окна - Сохраненные точки обзора | ✅ |
| NdxArray2SavedView | Технический метод, поиск сохраненной точки обзора по внутреннему пути | 🔧 |
| SavedView2NdxArray | Технический метод, получение пути для сохраненной точки обзора | 🔧 |
| NdxArray2Node | Технический метод, получение узла дерева по внутреннему пути | 🔧 |
| SelectionSets | Вид - Рабочее пространство - Окна - Наборы | ✅ |
| BeginEdit | Технический метод, аналог транзакций в API (начало работы) | 🔧 |
| EndEdit | Технический метод, аналог транзакций в API (конец работы) | 🔧 |
| ObjectFactory | Технический метод, создание новых экземпляров объектов всех поддерживаемых типов | 🔧 |
| CurrentView | То, как сейчас видна модель в Naviworks. Численные параметры камеры в "Точка обзора - Редактирование точки обзора - Текущий вид" | ✅ |
| CurrentSelection | Набор выбранных объектов в Naviworks | ✅ |
| CurrentPartition | Первый загруженный в модель файл (в Дереве выбора) | ✅ |
| GetEnum | Технический метод, для языков с динамической типизацией получить значение перечисления по его строковому варианту | 🔧 |
| FrameRate | Контекстное меню модели - Параметры файла - Скорость - Частота кадров | ✅ |
| ZoomInCurViewOnSel | Контекстное меню - Показать выбранные (если в модели выбран 1 или несколько объектов) | ✅ |
| ZoomInViewOnSel | "Клик" на данной сохраненной точке обзора в окне "Сохраненные точки обзора" | ✅ |
| OverrideColor | Контекстное меню модели - Переопределить - Переопределить цвет (если выбран хотя бы 1 объект в модели) | ✅ |
| OverrideTransparency | Контекстное меню модели - Переопределить - Переопределить прозрачность (если выбран хотя бы 1 объект в модели) | ✅ |
| OverrideReset | Контекстное меню модели - Сбросить для элемента - Сброс внешнего вида (если выбран хотя бы 1 объект в модели у кого был переопределен цвет и\или прозрачность) | ✅ |
| OverrideResetAll | Прямого соответствия нет. Сбрасывает для всех объектов имевшие место переопределения цвета и прозрачности | 🔧 |
| SelectionHidden | Контекстное меню у выбранного набора элементов - Скрыть (true) и Показать (false) | ✅ |
| SelectionRequired | Контекстное меню у выбранного набора элементов - Обязательный (true = галочка стоит, false = галочка не стоит) | ✅ |
| HiddenItemsResetAll | Контекстное меню модели - Сбросить все - Показать все | ✅ |
| RequiredItemsResetAll | Контекстное меню модели - Сбросить все - Сделать все необязательными | ✅ |
| EventsEnabled | Технический метод. Временное отключение и включение обработки событий действий с объектами (для повышения производительности) | 🔧 |
| CreatePicture | Точка обзора - Экспорт - Изображение Для данной точки модели (со стороны API данная точка доступна через метод CurrentView) | ✅ |
| CurrentAnimation | Анимация - активная анимация (среди списка) | ✅ |
| BackgroundColor | Контекстное меню модели - Фон - Цвет | ✅ |
| HeadlightAmbient | Контекстное меню модели - Параметры файла - Лобовое освещение - Ползунок для рассеянного цвета (?) | ✅❓ |
| HeadlightIntensity | Контекстное меню модели - Параметры файла - Лобовое освещение - Ползунок для направленного цвета (?) | ✅❓ |
| SeekSelection | Технический метод, запрос у пользователя выбора объектов | 🔧 |
| CurrentPlanView | Вид - Рабочее пространство - Окна - Вид в плане | ✅ |
| CurrentSectionView | Вид - Рабочее пространство - Окна - Вид в сечении | ✅ |
| AreaCullThreshold | Контекстное меню модели - Параметры файла - Отсев - Площадь - численное поле "Минимальное количество пикселов для отсева" | ✅ |
| MaxNearDistance | Контекстное меню модели - Параметры файла - Отсев - Площадь отсечения - Ближняя - численное поле "Расстояние" для фиксированного значения | ✅ |
| MinFarDistance | Контекстное меню модели - Параметры файла - Отсев - Площадь отсечения - Дальнее - численное поле "Расстояние" для фиксированного значения | ✅ |
| ApplyView | Технический метод. Переход к заданному виду (с данными настройками камеры) | 🔧 |
| TwoSided | Прямого соответствия нет. Как подсказывает ИИ, где-то в настройках визуализации во встроенном рендере от Autodesk. Наиболее ближе по смыслу Точка обзора - Стиль визуализации - Режим - Полная визуализация | ❓ |
| ViewAll | Контекстное меню модели - Показать все | ✅ |
| StopMovement | Прямого соответствия нет. Прерывает любую анимацию (?) | ❓ |
| InwOpState2 | ||
| OverrideTransform | Контекстное меню - Переопределить - Переопределить преобразование (если выбран хотя бы 1 объект в модели) | ✅ |
| OverrideTransformReset | Контекстное меню модели - Сбросить все - Отменить преобразование (если выбран хотя бы 1 объект в модели) | ✅ |
| OverrideTransformResetAll | Контекстное меню модели - Сбросить все - Преобразования | ✅ |
| InwOpState3 | ||
| CurrentFindSpec | Вид - Рабочее пространство - Окна - Поиск элементов Имеются в виду параметры поиска ( InwOpFindSpec):- выборка (где искать) selection;- условия поиска Conditions;- "До первого найденного" true в ResultDisjoint;- Выпадающий список "Найти" - SearchMode, перечисление nwESearchMode | ✅ |
| GetAttributeProperties | Вспомогательный метод. Преобразование атрибута в перечень свойств | 🔧 |
| StdName | Вспомогательный метод. Получение внутреннего имени объекта. Контекстное меню модели - Глобальные параметры - Интерфейс - Разработчик - Показывать внутренние имена свойств (если это выбрано) | 🔧✅ |
| SetOverrideURL | ||
| GetOverrideURL | ||
| OverrideURLReset | ||
| OverrideURLResetAll | ||
| DeleteSelectedFiles | Сбросить выбор объектов в модели | ✅ |
| GlobalProperties | Вспомогательный метод. Возвращает настройки модели прим. автора - все настройки про URL | 🔧❓ |
| URLsEnabled | ||
| IsComposite | ||
| GetMeasureFirstPos | ||
| GetMeasureEndPos | ||
| GetMeasureDiff | ||
| GetMeasureValue | ||
| GetGUIPropertyNode | ||
| SmartTagsEnabled | ||
| InwOpState4 | ||
| GetFirstInstanceOfNode | Технический метод. Возвращает первый узел дерева для данного внутреннего пути | 🔧 |
| ZoomInCurViewOnBoundingBox | Вид - Включить сечение (настроить рамку и масштаб) | ✅ |
| SmartTagText | Технический метод. Получение содержимого тэга по внутреннему пути Аналог просмотра тэга вручную (?) | 🔧❓ |
| GetIOPluginOptions | 🔧 | |
| DriveIOPlugin | 🔧 | |
| PluginOptions | 🔧 | |
| PluginOption | 🔧 | |
| InwOpState5 | ||
| CheckLicense | Верхняя панель функций - Справка - О программе ... | ✅ |
| InwOpState6 | ||
| StartInteractive | 🔧 | |
| EndInteractive | 🔧 | |
| GetCurrentFilename | Панель Свойства - Элемент - Имя файла источника (для выбранного узла из Дерева выбора, соответствующего файлу) | ✅ |
| InwOpState7 | ||
| LoadedFileCount | Число загруженных в модель файлов. В UI не отображается, но можно посчитать вручную из Дерева выбора | ✅🔧 |
| LoadedFileFromNdx | Технический метод. Получение информации о загруженном файле Интерактивный выбор в Дереве выбора по индексу | ✅🔧 |
| LoadedFileFromPath | Технический метод. Получение информации о загруженном файле по внутреннему пути | 🔧 |
| InwOpState8 | ||
| SelectionSetsEx | Вероятно, какая-то безопасная версия метода SelectionSets.По сути, перечень Вид - Рабочее пространство - Окна - Наборы | 🔧 |
| FileVersion | 🔧 | |
| InwOpState9 | ||
| GetProductInfo | Заголовок приложения Navisworks (то что отображается в шапке приложения) | ✅ |
| InwOpState10 | ||
| PtrEquals | Технический метод. Сравнение двух объектов | 🔧 |
| X64PtrVar | Технический метод. Получение указателя на объект | 🔧 |
| X64PtrLongs | Технический метод. Сравнение двух объектов (по указателям) | 🔧 |
| InwOpState11 | ||
| OverrideTransformEx | Вероятно, какая-то безопасная версия метода OverrideTransform.Контекстное меню - Переопределить - Переопределить преобразование (если выбран хотя бы 1 объект в модели) | ✅🔧 |