ADN Open CIS
Сообщество программистов Autodesk в СНГ

20/11/2014

Лёгкое программирование под Autodesk Vault Часть 42

На высоком уровне:

Свойства представляют собой тип поведения, который в основном означает, что это функция, которая работает над сущностями, а не с конкретными типами объектов. Есть 2 вещи, которые мы делаем с этой концепцией: 1) мы консолидируем функции и 2) мы позволяем данным быть общими для всех типов сущностей.

Эти концепции можно увидеть на диалоге свойств (Инструменты меню-> Администрирование->Настройки хранилища-> Вкладка "Поведение"> Кнопка "Свойства"). Все находится в одном диалоговом окне, вместо раздельных окон для файла, элементов и запросов на изменение.

Этот диалог дает вам хороший список определений свойств. Обратите внимание, как каждое определение связано с 1 или более классами сущностей. Это хорошо, так как вы можете описать определение свойства один раз и использовать его в нескольких местах. Определение свойства могут работать только с теми классами сущностей, с которыми они связаны.

Также вы можете связать определения свойств с категориями. Это позволяет изменить поведение свойства в зависимости от категории, которой является сущность. Эта функция предоставляет бОльшую специализацию во время повторного использования.

Системные и определяемые пользователем свойства:

Свойства, поддерживаемые Vault являются системными, либо определяемыми пользователем (UDP). Главное отличие в том, что UDP значения можно редактировать непосредственно, а значения системных устанавливается системой. На уровне определения свойства, системные свойства имеют только несколько вариантов редактирования. Точно так же, системные свойства не могут быть добавлены или удалены.

Источник содержимого свойств:

Свойства способны на многое. Они заполняют таблицы данных, позволяют искать, определяют ограничения жизненного цикла и т.д. Все это возможно потому, что Vault "обладает" этими данными. Vault хранит данные в своих таблицах и индексах, и все организовано для поддержки функций Vault.

Но как насчет свойств, которые не принадлежит Vault? Эти свойства не организованы Vault и они не в том формате, который распознает Vault. Мы называем это свойствами содержимого источника, потому что они из источника, отличного от Vault. Так как же Vault работает с этими данными?

Решение состоит в отображении содержимого исходного свойства в UDP. Таким образом Vault может производить операции над UDP, не имея представления и не заботясь о механике свойства источника контента.

"Клеем" между имущества содержимым источника и UDP является модуль, который называется Провайдер Содержимого Источника (Content Source Provider). Он содержит логику для чтения и/или записи свойства источника содержимого и взаимодействия с фреймворком Vault. Эти поставщики разбиты по типу файла. Так, есть поставщик для AutoCAD, для Inventor и так далее. Существует также поставщик "Все файлы", который обрабатывает все файлы, не заявленные другим поставщиком.

Свойства файла

В последнем разделе упомянуто, как концепция свойства охватывает несколько классов объектов. Однако есть еще детали реализации, которые являются уникальными для каждого класса. В этом разделе мы остановимся конкретно на свойствах файла.

Источник содержимого свойств

В контексте файлов, свойство источника контента представляет собой свойство в файле. Это может быть атрибут надписи из файла AutoCAD, или iProperty из файла Inventor или свойство структурированного хранения из файла Microsoft Office. Свойство может быть даже нечто большее, абстрактное, например, количество цветов в файле JPG. Дело в том, что свойство живет внутри файла, и Vault нужен способ для чтения и записи этой информации.

Как я уже упомянуть в предыдущем разделе, поставщик источника содержимого - это "клей", который считывает и записывает свойства источника контента из файла и отображает их в пользовательские свойства Vault. Поскольку каждый тип файла является особенным, существует несколько провайдеров, которые разбиты по типу файла.

Поставщик "Все файлы" является частным случаем. Это тот, который используется, когда никакой другой поставщик не доступен. Этот поставщик работает с путём использования механизма Windows iFilter для того, чтобы читать свойства источника содержимого. Если подходящей iFilter не найден, то свойства источника контента не могут быть считаны для этого типа файлов. Поставщик "Все файлы" не может быть использован для записи свойства в источник содержимого.

Источник: Autodesk Vault 2014 SDK.

Обсуждение: http://adn-cis.org/forum/index.php?topic=1092

Опубликовано 20.11.2014
Отредактировано 20.11.2014 в 17:01:29