Доступ к IfcGUID импортированной стены
Вопрос: У меня есть стена, которая в IFC файле задана с идентификатором ‘3lDzp1LFjDqwXDAihsyNrA’ и выглядит примерно так:
#615 = IFCWALLSTANDARDCASE( '3lDzp1LFjDqwXDAihsyNrA',#42, '\X2\6A196E9658C1\X0\:(P)PC200:1185289', $,
'\X2\6A196E9658C1\X0\:(P)PC200:794115',
#587, #613, '1185289' );
Как можно получить IFC GUID '3lDzp1LFjDqwXDAihsyNrA' для этой стены в модели Revit?
Получение списка видимых примитивов в динамическом блоке
Членом ADN был задан следующий вопрос:
Как можно получить список видимых примитивов для конкретного состояния видимости динамического блока, содержащего параметр видимости?
Решение основывается на предложении Тони Танзилло из этого сообщения на форуме.
Решение:
К сожалению API динамических блоков ограничено и нет прямого пути для получения этой информации. Эта информация в словаре расширения динамического блока и требуется смотреть на свойства экземпляра класса "AcDbBlockVisibilityParameter" (это родной класс ObjectARX, но он недоступен через публичные API ни в C++, ни в .NET).
Так что требуется несколько больше работы для получения этой информации. Вот несколько шагов:
Как сохранить идентификатор объекта в словаре расширения другого объекта?
Следующий код показывает как это сделать. Обратите внимание, что необходимо преобразовать ObjectId в ads_name для сохранения результата в Xrecord, и наоборот для получения ObjectId из буфера результата Xrecord. Также отметьте, что необходимо передать ссылку на первый элемент цепочки буферов методу setFromRbChain() вместо указателя на resbuf.
Добавление словаря расширения
Для каждого объекта AutoCAD можно сохранить его пользовательские данные. Обычно это делается для графических примитивов, когда для них сохраняется неграфическая информация. Например, для отрезка AutoCAD можно сохранить строку и/или число (в его словаре расширения). Следующий код показывает как можно добавить в словарь расширения плавающее число и строку.Объект Security в PLM 360
Рассматриваются особенности обекта Security в PLM 360Состояние объекта - Свойство Master
Рассматриваются свойства объекта Master в PLM 360Добавление нового положения файла при помощи Sheetset API
Вот кусок кода, добавляющий новое положение файла и устанавливает новое положение листа при помощи Sheetset API :Реакторы внешних ссылок
На работе понадобилось "причесать" стандартный механизм обработки внешних ссылок, используемый в AutoCAD. VISRETAIN (о которой недавно была статья) установлена равной 1. Файл подосновы вставляется как вставленная ссылка в файл основных решений. В файле основных решений выключаются и/или замораживаются некоторые слои. Файл, естественно, сохраняется. Потом файл основных решений используется как внешняя ссылка в текущей работе. И вот тут вылезает очень интересная штука: при вставке "основных решений" состояние слоев "подосновы" не подхватывается и берется именно в том виде, в каком оно есть в исходном файле ("подосновы"). Оставлю за скобками правильность такого решения Autodesk, равно как и требования пользователей "брать то состояние слоев, которое есть в файле основных решений" - надо сделать так, чтобы читалось. Понятно, что надо обрабатывать в реакторах. Вот об этом и расскажу.Твердые тела и поверхности Fusion - Часть 3
Рассматриваются особенности топологии Fusion 360Твердые тела и поверхности Fusion - Часть 4
Рассматриваются особенности топологии Fusion 360Как удалить полностью словарь расширения (ExtDict) примитива средствами .NET?Автор: Александр Ривилис
Как удалить полностью словарь расширения (ExtDict) примитива средствами .NET?
В статье Как удалить полностью словарь расширения (ExtDict) примитива? описано как это сделать средствами ObjectARX. Ниже приводится код как тоже самое можно сделать при помощи AutoCAD .NET API:
Установка положения MText для каждого из масштабов аннотаций
Для аннотативного MText его положение можно менять при помощи ручек. Это положение специфическое для каждого из масштабов аннотаций чертежа. В данный момент не существует публичного API для установки положения аннотативного примитива для каждого масштаба программным путём. В качестве альтернативного метода можно использовать установку масштаба перед установкой положения. Этот пример кода проходит по коллекции масштабов и устанавливает позицию MText для каждого из масштабов.
Твердые тела и поверхности Fusion - Часть 2
Рассматриваются особенности топологии Fusion 360Как показать иерархическое меню в Ленте
Если вам нужно показать простой (одноранговый) список – подойдёт RibbonSplitButton. О нём есть соответствующая статья. Но если вам нужно организовать иерархическое меню - подойдёт RibbonMenuButton. Ниже пример кода, создающий меню как на следующей картинке:О методе AcDbObject::releaseExtensionDictionary
В чем разница между вызовом метода erase() непосредственно для словаря расширения (extension dictionary) и вызовом releaseExtensionDictionary() для объекта-владельца?Это API предоставлено для возможности полного удаления словаря расширения объекта. Этот метод позволяет создавать полностью новый словарь расширения вместо того, чтобы очищать существующий в текущей сессии редактирования чертежа.
Фундаментальное различие между вызовом releaseExtensionDictionary() для родительского объекта и вызовом erase() для словаря расширения становится совершенно очевидным если посмотреть на результаты вызова двух других методов работы со словарём расширения: extensionDictionary и createExtensionDictionary. Рассмотрим следующие две последовательности:
Как удалить полностью словарь расширения (ExtDict) примитива?Автор: Александр Ривилис
Вопрос:
Как удалить полностью словарь расширения (ExtDict) примитива?
Ответ:
В статье О методе AcDbObject::releaseExtensionDictionary описано как и для чего использовать этот метод. Однако для того, чтобы воспользоваться эти методом следует сначала очистить (т.е. удалить все элементы) словаря расширения. Следующий код показывает, как это сделать и результаты его работы:
НПИ (CUI) и прозрачные картинки
До AutoCAD 2014 включительно, AutoCAD использует только формат BMP в CUI. Так как формат BMP не поддерживает прозрачность, AutoCAD использует RGB-цвет 192,192,192 как прозрачный. Пользователи AutoCAD могут использовать эту особенность в CUI.Но это ограничивает возможность использования прозрачности только фоновым цветом 192,192,192. Любые другие фоновые цвета становятся видимыми в CUI.
Начиная с AutoCAD 2015 (и в более новых версиях), вы можете использовать формат PNG для картинок. Так как PNG формат поддерживает прозрачность, вы можете установить прозрачность для картинки и не ограничены только фоновым цветом 192,192,192.
Если у вас есть картинка в формате BMP с фоновым цветом (типа 192,192,192) тогда вызов “Bitmap.MakeTransparent” API поможет конвертировать этот цвет в прозрачный. Следующий код конвертирует BMPс фоновым цветом 192,192,192 в прозрачный PNG
Visretain и слои внешних ссылок
Системная переменная VISRETAIN существует достаточно давно и ее описание вроде бы внятно и понятно. Но вот стоит поставить ее равной 1 и вылезают некоторые моменты, предусмотреть которые я в свое время не смог.Сервис хранения объектов Object Storage Service (OSS)
p>О сервисеAPI Сервиса хранения объектов предоставляет простой, быстрый и безопасный способ для хранения и доступа к объектам в Autodesk Cloud. Все обращения к OSS зачищены при помощи технологии OAuth 2.0.
Чтение доступных методов определения потерь
Недавно мы рассматривали, как можно получить данные таблицы ASHRE. Эта информация хранится в Расширяемой области хранения и связана с элементом параметром RBS_DUCT_FITTING_LOSS_METHOD_SERVER_PARAM в виде GUID значения.
А как мы можем получить список всех доступных методов определения потерь?