Импортирование фильтров слоев
Здесь пример кода для импортирования фильтра слоев, включая вложенные фильтры, из другого чертежа. Слои, которые фигурируют в этих фильтрах, также копируются.
А вот пример чертежа, на котором проводились тесты: Загрузить тестовый чертеж
Изменение стадии вида
Вопрос: Возможно ли изменение стадии вида? Например, хотелось бы видеть свойство типа View.Phase.
Я попробовал изменить стадию, но безрезультатно.
Спасибо за помощь.
Подрезка внешних ссылок при помощи ObjectARX
Этот класс используется для определения пространственного фильтра, который AutoCAD использует для создания определения объемного отсечения вхождения блока внешней ссылки в основном чертеже. AutoCAD использует эту пространственный фильтр, чтобы решить, будет ли этот объекты с указанными ID обрабатываться при регенерации.
Ниже небольшой пример. Примечание: команда должна быть определена с флагом ACRX_CMD_NOINTERNALLOCK
Метод AcDbRegion::transformBy
Вопрос: У меня есть ситуации, в которых использование метода AcDbRegion::transformBy дает различные результаты в AutoCAD 2015 и в AutoCAD 2014 Можете ли Вы объяснить, что изменилось в этом методе, что приводит к различным результатам?Ответ: Этот сценарий работал в AutoCAD 2014, потому что мы использовали больший допуск (equalPoint равный 1.0E-8 и equalVector равный 1.0E-6). В AutoCAD 2015 установка допуска не делается, так что это повлияло на некоторые сценарии выполнения ряда методов. Ниже указано как можно обойти эту ситуацию. Спасибо партнеру ADN, который показал нам такой вариант поведения.
Каждая кнопа на ленте привязана только к одной команде
Вопрос: Я бы хотел реализовать только одну внешнюю команду и вызывать ее при нажатии любой из кнопок, которые я создал в своем приложении. Все дело в том, что я хочу уменьшить количество кнопок на ленте, так как некоторые из них должны быть активны только в определенный момент. Как в методе Execute я могу определить какая именно кнопка была нажата, чтобы выполнить соответствующие действия? Например, можно ли определить название кнопки, на которую нажал пользователь?
Лёгкое программирование под Autodesk Vault Часть 34Автор: Дмитрий Емельянов
Элементы. ВведениеОбновление файлов семейств без отображения диалога. Часть 2
Ранее я уже предлагал советы по обновлению файлов семейств без отображения диалога, появляющегося каждый раз при загрузке семейства в проект.
Предложения были такими:
- Использовать Revit file updater, разработанный командой ADN
- Обработать событие отображения сообщений с помощью различных технологий
- Определить версию Revit, в который был сохранен файл, до начала загрузки.
Разработчик, которого интересовал этот вопрос, попытался использовать эти способы. Я хотел бы обсудить что в итоге вышло.
Лёгкое программирование под Autodesk Vault Часть 31Автор: Дмитрий Емельянов
Папки. СозданиеЛёгкое программирование под Autodesk Vault Часть 32Автор: Дмитрий Емельянов
Папки. ИзменениеЛёгкое программирование под Autodesk Vault Часть 33Автор: Дмитрий Емельянов
Папки. УдалениеЛёгкое программирование под Autodesk Vault Часть 30Автор: Дмитрий Емельянов
Папки. Получение информацииПреобразование ссылок на геометрию объекта в связанных файлах
В Revit API 2014 появились дополнительные методы для работы со связанными файлами. Среди них:
- Reference.LinkedElementId
- Reference.CreateLinkReference
- Reference.CreateReferenceInLink
Эти методы нужны для преобразования ссылок на объекты, который находятся в связанном файле, на ссылки, которые находятся в текущей модели.
Преобразование цветов между RGB и AutoCAD ACI в ObjectARX
Преобразование цвета в RGB к ближайшему эквивалентному индексу в палитре индексов AutoCAD (ACI) может быть сделано при помощи методов loopUpACI и lookUpRGB, реализованных в классе AcCmEntityColor.
Следующий пример использует метод lookUpRGB() для конвертации индекса цвета 47 в соотвествующий цвет в RGB, а затем используя полученный RGB найдем ближайший индексный цвет при помощи метода lookUpACI()
Лёгкое программирование под Autodesk Vault Часть 29Автор: Дмитрий Емельянов
Папки. ВведениеОбновление файлов семейств без отображения диалога
Вопрос: В моей надстройке мне необходимо загрузить большое количество заранее определенных семейств в проект. Проблема в том, что некоторые из этих файлов были созданы в предыдущей версии Revit и в результате появляются всплывающие окна для каждого из таких семейств.
Есть ли способ загрузить семейства в тихом режиме, т.е. без отображения каких-либо диалогов? Я хочу, чтоб семейство все-таки обновилось, но без предупреждений. Либо чтобы это предупреждение появлялось только один раз.
Фильтрация системных семейств
Вопрос: Возможно ли создать такой фильтр, чтобы получить только системные семейства, игнорируя пользовательские? Я пробовал использовать пример, описанный в статье http://adndevblog.typepad.com/aec/2012/05/accessing-system-families-in-a-revit-template.html, однако, этот фильтр возвратил все семейства.
Работа с кодом надстройки для различных версий RevitАвтор: Виктор Чекалин
Как правило, с выпуском новой версии Revit меняется и его API – появляются новые методы, исчезают старые. Надстройка же зачастую должна работать как в новой версии, так и в старой. Разработчик должен при этом должен как-то обслуживать код для различных версий Revit.
Данная проблема возникает естественно не только с Revit, но по сути с любым другим продуктом, поэтому описанный ниже подход годится не только для Revit.