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

11/06/2015

Создание особенного воздуховода или трубы

Вопрос: Я только недавно начал работать с Revit API и у меня возник вопрос. Могу ли я создать обычную трубу или воздуховод, но с использованием фитинга как обязательной частью трубы или воздуховода?

Ни одна из существующих фитингов труб или воздуховодов не подходит для моих целей.

Опубликовано 11.06.2015     Читать далее >>>
09/06/2015

Почему не загружается в AutoCAD мой ARX-файл и как с этим бороться?Автор: Александр Ривилис

Причин по которым arx-файл не загружается в AutoCAD может быть много. В этом случае обычно выдаётся сообщение типа:
AcRxDynamicLinker failed to load ”....\myArxFile.arx”.....

C:\Program Files\Autodesk\AutoCAD 2015\acad.exe

can't load the myArxFile.arx file。

Или:

“....\myArxFile.arx” не является корректным ARX-файлом.

Сбой AcRxDynamicLinker при загрузке .”...\myArxFile.arx”

C:\Program Files\Autodesk\AutoCAD 2015\acad.exe

Module ”...\myArxFile.arx” failed to load.

Опубликовано 09.06.2015     Читать далее >>>
09/06/2015

Создание ВЭкрана автоматически отображающего план ПСК (UCSFollow)

Следующий пример показывает как создать вид с включенным UCSFollow. Это должно означать, что ВЭкран будет всегда отображать план текущей ПСК при любом её изменении.
Опубликовано 09.06.2015     Читать далее >>>
08/06/2015

Митап Autodesk: Королевство BIM: где развернуться разработчику?

Открылась регистрация на очередную неформальную встречу (митап), которая будет проходить в московском офисе Autodesk, 8 июня 2015 г., с 19.00 до 21.00
Опубликовано 08.06.2015     Читать далее >>>
06/06/2015

Типы сценариев PLM360 - Сценарии условия и проверки

Рассматриваются сценарии условия и проверки в PLM360
Опубликовано 06.06.2015     Читать далее >>>
06/06/2015

Динамически размеры при помощи GripOverrule

Динамические размеры – это простой и интуитивно удобный способ дать возможность пользователю изменять примитивы при редактировании при помощи «ручек». Для того чтобы это работало необходимо установить системную переменную DYNMODE в значение 2 или 3. Если вы хотите изменить обычное поведение редактирования при помощи «ручек» и указать другой размер, что интуитивно и удобно для пользователя – Grip Overrule поможет вам в этом.

Для окружности, когда «ручка» выбрана, появляется запрос значения радиуса в динамическом размере. Следующий пример кода меняет стандартное поведение. При выборе «ручки» у пользователя спрашивается диаметр окружности и динамический размер помещается горизонтально в центре окружности. Также в командной строке отображается новое, введенное пользователем, значение диаметра.

Опубликовано 06.06.2015     Читать далее >>>
05/06/2015

Ошибка при создании сплайна

Я работаю над надстройкой для Revit, где в частности есть перенос кривых из Rhino в Revit для создания балок.

Код работает замечательно, когда количество контрольных точек кривой больше или равно 4. Но если их три, то возникает ошибка.

Опубликовано 05.06.2015     Читать далее >>>
05/06/2015

Как заставить две команды работать как одну

Когда одна команда запускает другую команду из приложения вы можете захотеть, чтобы AutoCAD воспринимал их как единую команду когда пользователь использует команду Отмени (Undo) или хочет повторить последнюю команду.

Например, команда "Test1" запускает другую команду "Test2". Вы можете пожелать чтобы оба действия отменились AutoCAD’ом вместе при нажатии Ctrl+Z. Аналогично, когда вы повторяете команду нажатием клавиши Enter, вы хотите чтобы запускалась команда "Test1", а не "Test2".

Чтобы это сделать нужно «скрыть» команду "Test2" с помощью флагов "CommandFlags.NoHistory" и "CommandFlags.NoUndoMarker".

Опубликовано 05.06.2015     Читать далее >>>
04/06/2015

Программная имитация команды Burst

Команда "Burst" из Express Tools очень полезна при расчленении блока с атрибутами. В отличие от обычной команды Расчленить (Explode) она оставляет атрибуты неизменными при расчленении вставки блока.

Вот пример кода имитирующий команду Burst при помощи AutoCAD .Net API. Он сначала расчленяет блок и заменяет все определения атрибутов текстами (DBText).

Опубликовано 04.06.2015     Читать далее >>>
31/05/2015

Объект элемент в PLM360 - поля

Рассматриваются особенности полей в объектах элементов PLM360
Опубликовано 31.05.2015     Читать далее >>>
30/05/2015

Основные понятия API Fusion

Рассматриваются особенности API Fusion
Опубликовано 30.05.2015     Читать далее >>>
29/05/2015

Элемент в сценарии PLM360

Первый пост про самый главный объект PLM360 - элемент.
Опубликовано 29.05.2015     Читать далее >>>
27/05/2015

Клонирование твердотельного объекта

Вопрос: Для клонирования твердотельных объектов мы использовали вот такой трюк:

Код - C#: [Выделить]
  static public Solid Clone( this Solid solid )

  {

    if( solid == null )

    {

      return null;

    }

    return BooleanOperationsUtils

      .ExecuteBooleanOperation( solid, solid,

        BooleanOperationsType.Union );

  }

С помощью этого метода мы копировали твердотельный объект и в дальнейшем использовали его для создания или редактирования объекта DirectShape. Этот способ работает замечательно в большинстве случаев. Однако на некоторых объектах DirectShape возникает исключение:

26/05/2015

Копирование словаря расширения (ExtDictionary)

Следующий код показывает как скопировать словарь расширения одного примитива в другой примитив. Специальная логика устанавливает в конце имена словаря как у исходного примитива, так как “DeepCloneObjects” копирует их с другими именами в целевой примитив.
Опубликовано 26.05.2015     Читать далее >>>
23/05/2015

Изоляция экземпляров семейства для дальнейшего экспорта в DWG

Проблема следующая: нужно взять оборудование, представленное в виде семейств категории Типовые модели на 3D виде и для каждого оборудования создать отдельный вид для дальнейшего экспорта в DWG.

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

Опубликовано 23.05.2015     Читать далее >>>
22/05/2015

Список всех импортированных САПР файлов

Вы когда-нибудь беспокоились о том, есть ли у вас дубликаты импортов из САПР форматов?

Мой коллега Николай Шульга (Nikolay Shulga) из команды разработчиков Revit реализовал маленькую полезную утилиту для ответа на этот вопрос.

Вот что он пишет:

Когда-то я написал прототип приложения для вывода всех импортированных объектов в проект Revit. Идея состояла в том, чтобы вывести дублирующийся экземпляры. Люди часто импортируют одни и те же данные несколько раз.

Опубликовано 22.05.2015     Читать далее >>>
21/05/2015

Преобразование AcDbObjectIdArray в IAcadSelectionSet

Недавно я получил запрос от партнера ADN как передать массив ObjectID в Export COM API. Проблема заключается в том, что необходимо преобразование из C++ в COM

Прототип функции Export в COM описывается так :

Export ( /*[in]*/ BSTR FileName, /*[in]*/ BSTR Extension, /*[in]*/ struct IAcadSelectionSet * SelectionSet ) = 0;

Ей передаётся имя файла, расширение файла и IAcadSelectionSet – набор примитивов, тогда как у нас есть массив ObjectId.

Поставим перед собой цель выполнить экспорт набора примитивов в BMP-файл.

Опубликовано 21.05.2015     Читать далее >>>
19/05/2015

Как найти все поля (Field) в чертеже?

Словарь именованных объектов (NOD) в базе данных содержит запись “ACAD_FIELDLIST” если чертеж содержит хотя бы одно поле. Эта запись содержит записи класса “AcDbFieldList”, который к сожалению не доступен ни в ObjectARX, ни в .NET API.

Каждый объект AcDbField обычно доступен из словаря расширения (Extension Dictionary). Например, если мы создаём MText содержащий поле, мы можем получить доступ к MTextyou и посмотреть AcDbField в его ExtensionDictionary.

Чтобы получить все поля непосредственно – единственный путь получить все TypedValue (DxfCode – пары значений) из нашего AcDbFieldList, пройдя по ним по всем и отобрав все, у которых код = 330 и тип AcDbField.

Опубликовано 19.05.2015     Читать далее >>>
18/05/2015

Процесс проверки и тестирования приложений перед публикацией в AutodeskExchangeApps. Теория и практика.Автор: Ярослав Решетников

После того, как автор заполняет заявление на публикацию, загружает дистрибутив приложения и нажимает на кнопку «ОТПРАВИТЬ», начинается 2-ой этап публикации, в течение которого сформированное заявление и вся сопутствующая документация проходит проверку в Autodesk. Этот этап представляется многим авторам как «черный ящик», надеюсь, что данная статья ответит на ряд вопросов.

Нередко в процессе тестирования, эксперт со стороны Autodesk связывается с автором и пытается прояснить возникшие вопросы, а также указать на найденные ошибки.

Что же проверяют эксперты со стороны Autodesk?

Опубликовано 18.05.2015     Читать далее >>>
18/05/2015

Метод CopyElements и параметр View

Параметр View при использовании метода CopyElements, нужно использовать только в случае, если вы работает с элементами, зависимыми от конкретного вида, т.е. 2D элементами.

Это отметил Arnošt Löbel на форуме по Revit API в теме ElementTransformUtils.CopyElements из связанного документа.

Опубликовано 18.05.2015     Читать далее >>>