Обработка ошибок и предупреждений
Программная обработка диалогов с предупреждениями
Вопрос: Возможно ли с помощью Revit MEP 2011 API обрабатывать сообщения с предупреждениями?
Например, при обработке нескольких файлов, может появиться диалог с предупреждением. Я бы хотел перехватит это событие, извлечь текст сообщения и не показывать диалог.
И еще, если предупреждения могут быть перехвачены и обработаны, можно ли так же обработать сообщения об ошибках? Например, если при работе возникает ошибка, можно ли программно определить номер ошибки, выбрать подходящее действие для обработки этой ошибки и продолжить выполнение некоторых действий без фактического отображения диалога?
Обновление выравнивания текста
В ряде случаев выравнивание текста примитива DBText не выполняется. Для того чтобы заставить выполнится выравнивание используется метод DBText.AdjustAlignment. Этот метод для работы использует рабочую базу данных. Таким образом особенно важно указать ему рабочую базу данных, когда DBText еще не добавлен в рабочую базу данных.Новые примеры в Revit SDK 2015
Новые примеры в Revit SDK 2015
Первый релиз Revit SDK 2015 включает в себя 4 новых примера, демонстрирующих функциональность нового Revit API:
Создание анонимного слоя
Чтобы создать анонимный слой необходимо вызвать метод AcDbLayerTableRecord::setIsHidden()как показано ниже в коде. Анонимные слои не видны в диспетчере слоёв и соответственно пользователь не может редактировать/удалить анонимный слой.
Удаление анонимных групп средствами ObjectARX
Когда пользователь создает группу в AutoCAD, он может создать группу анонимной. При этом любая группа (анонимная или нет) хранится в Словаре именованных объектов (NOD) в группе 'ACAD_GROUP'. Если группа анонимная, AutoCAD присваивает ей имена вида '*A1', '*A2' и так далее. Хотя группа и анонимная, но у каждой анонимной группы есть уникальное имя в базе чертежа.
Пользователь может удалить примитивы из группы, так что группа может оказаться пустой. Следующий код демонстрирует как удалить анонимную группу.
Создание мультиполигона в AutoCAD средствами .NET API
Мультиполигон (MPolygon) – это пользовательский объект созданный для AutoCAD Map 3D. Но он доступен и в чистом AutoCAD и с ним можно работать средствами ObjectARX. Чтобы работать с ним в .NET необходимо добавить добавить ссылку на AcMPolygonMGD.dllи кроме того требуется, чтобы файл AcMPolygonObjNN.dbx (где NN = 19 для AutoCAD 2013 и 2014 и NN = 20 для AutoCAD 2015) загружен в AutoCAD до вызова любого из методов MPolygon. Оба этих файла содержатся в корневом каталоге AutoCAD.Получение штриховки (Hatch) из мультиполигона (MPolygon)Автор: Александр Ривилис
Вопрос: В dwg-файле имеется множество мультиполигонов (MPolygon). Как из них можно получить штриховки (Hatch)? Метод MPolygon.Hatch в большинстве случаев дает штриховку, у которой в панели свойств неопределенна площадь.
Ответ: Ниже приводится код, который позволяет получить из MPolygon корректную (т.е. имеющую площадь) штриховку.
Идентификаторы элементов в Revit - Часть 4. Числовой и уникальный идентификатор меняется при повторном импорте
Предыдущие части:
- Часть 1 - Уникальный идентификатор (UniqueId) или числовой (Element.Id)
- Часть 2 - Уникальность уникального идентификатора UniqueId
- Часть 3 - Отрицательные значения ElementId
Вопрос: Мы столкнулись с проблемой при повторном импорте измененного IFC файла в Revit, так как числовой и уникальный идентификатор оказались не надежными.
В результате, все ссылки на связанную модель (вне IFC), такие как размерность, потерялись, после того, как мы заново импортировали отредактированную модель. Нам пришлось повторно подгонять импортированную модель.
Лёгкое программирование под Autodesk Vault. Часть 23
Vault API предоставляет множество методов для получения информации о файлах. Для этого используются функции Get* и Find*, которые расположены в службах DocumentService и DocumentServiceExtensions.Лёгкое программирование под Autodesk Vault. Часть 20Автор: Дмитрий Емельянов
Получение общей информации по хранилищамЛёгкое программирование под Autodesk Vault. Часть 21Автор: Дмитрий Емельянов
Добавление хранилищ на сервер VaultЛёгкое программирование под Autodesk Vault. Часть 22Автор: Дмитрий Емельянов
Vault API предоставляет множество методов для работы с файлами. Поскольку большинство информации расположено в файлах, это довольно большая область API.Идентификаторы элементов в Revit - Часть 3. Отрицательные значения ElementId
Предыдущие части:
- Часть 1 - Уникальный идентификатор (UniqueId) или числовой (Element.Id)
- Часть 2 - Уникальность уникального идентификатора UniqueId
Вопрос: Иногда я вижу отрицательные значения ElementId. Что это, и почему такое может быть?
Лёгкое программирование под Autodesk Vault. Часть 17Автор: Дмитрий Емельянов
Обновление свойств пользователей при помощи Autodesk Vault API.Лёгкое программирование под Autodesk Vault. Часть 18Автор: Дмитрий Емельянов
Vault API предоставляет ряд методов для работы с хранилищами. Они расположены в службах FilestoreVaultService и KnowledgeVaultService. На основании сводной таблицы вы можете получить представление об этих методах.Лёгкое программирование под Autodesk Vault. Часть 19Автор: Дмитрий Емельянов
Получение хранилищ VaultRevit как сервис
За довольно короткое время уже несколько человек задавали вопрос о том можно ли использовать приложение Revit как услугу (сервис). Видимо пришло время разобрать этот вопрос поподробней.
Создание твердых тел выдавливанием полилинии
Примитив твердого тела может быть получен выдавливанием объекта область. Таким образом мы можем создать временную область, ограниченную существующей полилинией. Здесь мы расчленяем полилинию на отдельные кривые, составляющие границу, а затем создаем область из этих кривых.
Посмотрите на следующий пример кода:
Создание Polyline3d без использования транзакции
Вы возможно в курсе, а может и не в курсе, что управлять примитивами в базе данных AutoCAD можно без использования транзакций... В примере ниже показано как с помощью методов Open и Close (Close происходит при выполнении закрывающейся фигурной скобки оператора using) создать Polyline3d и связанные с ней вершины PolylineVertex3d.
Мне нравится использовать Open и Close вместо транзакций по ряду причин: