Вставка формы (SHAPE) в чертеж AutoCAD при помощи .NET APIАвтор: Александр Ривилис
Вопрос: Как при помощи AutoCAD .NET API вставить в чертеж форму, как это делает команда ФОРМА (_SHAPE)?
Ответ: Как оказалось эта информация нигде не освещена. Для того чтобы вставить форму в чертеж необходимо:
- Создать текстовый стиль, указывающий на файл содержащий форму
- Создать примитив Shape, который имеет соответствующий стиль и имя соответствующее имени формы. Имеются определённые особенности, которые отражены в коде ниже:
Перечисление dbId в 2D-представлениях
Рассматриваются особенности перечисления dbId в 2D-представленияхПараметры принудительной установки свойств запроса конечной точки GET Properties
Рассматриваются особенности возврата данных из конечной точки GET PropertiesДобавление 3D-геометрии в сцену в приложении Forge
Рассматриваются особенности добавления 3D геометрии в сцену ViewerПолучение Id общего параметра для использования в ElementParameterFilter
Иногда при разработке функционала addin для Revit Вам необходимо получить Id (ElementId) определения общего параметра. Читайте далее, как это можно легко сделать
Revit 2019.1 и библиотека CEFSharp
Revit и некоторые addin-ы от Autodesk для реализации некоторых своих функций используют библиотеку CEFSharp - собственный встроенный web browser. Ваш addin также может использовать эту библиотеку.
Иногда использование разных версий этой библиотеки может привести к нестабильному поведению Revit.
Просмотр больших OCR/Terrain изображений в приложении Forge Viewer
Рассматриваются примеры построения приложений для просмотра больших OCR/Terrain изображений в приложении Forge ViewerВведение в BIM 360 Issues API
Рассматриваются руководства по BIM 360 Issues APIСоздание разметки Pushpin по SVG
Рассматриваются особенности создания разметки Pushpin с помощью SVGКак сделать вставку точки в разрыв кривой?Автор: Александр Ривилис
Как сделать вставку точки в разрыв кривой?
На форуме мне задали вопрос о том, как можно эмулировать команду _BREAK и вставлять в разрыв точку? Ниже код, показывающий как используя метод getSplitCurves можно добиться результата.
Об использовании FilterCategoryRule
Вопрос: у меня есть 3 вопроса относительно использования класса FilterCategoryRule
1) Как он соотносится с пользовательским интерфейсом Revit?
2) Если он представляет собой фильтр по категориям, как он соотносится с перечнем категорий, передаваемых в метод ParameterFilterElement.Create?
3) Как мне создать фильтр с этим правилом? Я пробовал в 2017 и 2018 версиях Revit и получал ошибку "An internal error has occurred". В справке сказано, что FilterCategoryRule это правило фильтра, по которому отбираются элементы заданного множества категорий.
Ускоряем ComboBox-ы в формах на WPF
Если Вы разрабатываете UI ваших addin-ов с использованием технологии WPF, то, вероятно замечали "тормоза" интерфейса, что особенно заметно в элементах управления "выпадающий список" (ComboBox). Давайте разберемся, как можно ускорить работу Ваших форм в Revit.Создание размеров труб
В статье описывается способ создания размеров вдоль труб. Вопрос не настолько прост, насколько кажется, метод GetEndPointReference кривой pipe.Location возвращает null. Кроме того, есть множество нюансов, относящихся к созданию размеров. Давайте попробуем разобраться, как, всё-таки, решить эту задачуУдаление границы штриховки
Класс AcDbHatch предоставляет методы для получения границ и для удаления границ. Каждая граница представляет собой так называемый цикл. С помощью методов класса AcDbHatch вы можете выполнять итерацию всех циклов. Затем вы можете получить все объекты, принадлежащие одному циклу. Все, что вам нужно сделать, это сравнить метки объектов цикла с меткой граничного объекта, который должен быть удален из объекта штриховки. Если у одного из объектов цикла есть дескриптор, который вы ищете, вы можете использовать AcDbHatch :: removeLoopAt (), чтобы удалить петлю из штриховки.
Следующая функция делает именно это. Параметр handleRemove является меткой примитива, принадлежащего к циклу, который следует удалить.
Создание штриховки и установка её масштаба
Вопрос:
Как можно создать штриховку и установить ей масштаб? Я написал функцию, которая создаёт штриховку. Но я обратил внимание, что она не в состоянии назначить масштаб штриховки и мне приходится это делать вручную. Почему это происходит?
Ответ:
Причина может быть в том, что вызов метода setPatternScale() происходит не в тот момент, когда это следует делать. Обратите внимание, что вы должны установить свойства штриховки, такие как угол, масштаб, ассоциативность и имя штриховки сразу же после создания AcDbHatch. После добавления границ штриховки вы можете установить другие свойства, такие как слой, цвет, стиль штриховки и т.д. Затем следует вызвать метод evaluateHatch() чтобы штриховка правильно отобразилась на экране. И после этого штриховку следует добавить к базе чертежа AutoCAD и закрыть. Следующий код показывает как это следует делать. Более детальную информацию можно найти в ObjectARX документации для класса AcDbHatch.