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

21/05/2014

Доступ к Revit из внешнего приложенияАвтор: Виктор Чекалин

Как известно, официального API для доступа к Revit из внешнего приложения не существует.

Тем не менее, можно реализовать его самостоятельно, хоть и с некоторыми ограничениями.

Обращаться к методам Revit API можно только в определенных контекстах:

  • открытие/закрытие приложения (IExternalApplication.OnStartup и IExternalApplication.OnShutdown)
  • Выполнение внешней команды (IExternalCommand.Execute)
  • Событие Idling (UIApplication.Idling)
  • Внешние события (ExternalEvents)

Ни один из этих способов недоступен вне приложения Revit.

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

Определение прерывания команды при выполнении acedCommandC

Выполнение команд в AutoCAD сейчас возможна двумя способами вместо одного варианта функции acedCommand. Функция acedCommandS проще для использования, но требует задания сразу всех параметров, которые необходимы AutoCAD для завершения команды и без ввода данных пользователем. При выполнении команды при помощи функции acedCommandS её нельзя прервать.

Функция acedCommandC используется в том случае когда может возникнуть необходимость паузы для ввода данных пользователем. Тут возможно прерывание пользователем выполнения команды вместо ввода данных. Чтобы идентифицировать это событие в коде используются функции "acedCmdCWasCancelled" и "acedCallBackOnCancel". Так же в силу асинхронности функции acedCommandC, завершение команды может быть идентифицировано только в функции обратного вызова, как в следующем коде.

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

Зумирование до границ окна с использованием CommandASync

В этой статье я проиллюстрирую пример использования AutoCAD 2015 API "Editor.CommandAsync".

Вопрос: Можно ли зумировать в пределах окна до тех пор пока не будет нажата кнопка ESC или отмена?

Ответ: Да. Это возможно с помощью CommandAsync.

Опубликовано 19.05.2014     Читать далее >>>
16/05/2014

Внутри палитр инструментов AutoCAD. Подводя итоги...

Подведем некоторые итоги "разбора" состава палитр инструментов. Что необходимо делать, если самостоятельно создавать инструмент синхронизации серверных палитр у десятков / сотен пользователей?
Опубликовано 16.05.2014     Читать далее >>>
16/05/2014

Добавление значка к курсору в AutoCAD 2015 с помощью .NET

В AutoCAD API 2015 появилась возможность добавлять свой значок к курсору.

Следует отметить, что значок курсора – это BITMAP-объект. Для того, чтобы у вас был прозрачный фон помните, что в качестве прозрачного фона AutoCAD использует пикселы (R=192, G=192, B=192)

Я решил добавить значок курсора в одной команде и удалить его в другой – для того чтобы увидеть как это будет работать в начале выбора примитивов и в других случаях - но более характерно добавлять значок при запуске JIG и удалять его сразу после его завершения.

Опубликовано 16.05.2014     Читать далее >>>
15/05/2014

Идентификаторы элементов в Revit. Часть 2

Продолжаем серию статей об идентификаторах в Revit

Часть 1: Уникальный идентификатор (UniqueId) или числовой (Element.Id)

Уникальность уникального идентификатора UniqueId

Опубликовано 15.05.2014     Читать далее >>>
15/05/2014

Внутри палитр инструментов в AutoCAD часть 3 - Удаление инструментов и палитр.

Мы уже разобрали, что происходит при добавлении каталога и при объединении палитр инструментов в группы. Предлагаю разобрать ситуацию удаления инструментов из палитры или целиком палитры.
Опубликовано 15.05.2014     Читать далее >>>
14/05/2014

Идентификаторы элементов в Revit. Часть 1

Начнем небольшую серия статей о различных идентификаторах элемента, существующих в Revit.

Некоторый из идентификаторов существуют уже давным-давно, некоторые же появились относительно недавно.

Опубликовано 14.05.2014     Читать далее >>>
14/05/2014

Внутри палитр инструментов AutoCAD часть 2 - Объединение в группы

В прошлой части мы добавляли каталоги палитр. Попробуем разобраться с группировкой палитр.
Опубликовано 14.05.2014     Читать далее >>>
13/05/2014

Внутри палитр инструментов AutoCAD часть 1 - Подключение дополнительного каталога

Что происходит, когда пользователь (ну или программист - неважно) подключает дополнительный каталог палитр? Где и как это фиксируется? А если в файлы палитр вносить изменения, чего будет?
Опубликовано 13.05.2014     Читать далее >>>
12/05/2014

Определение размера и месторасположения видов на листе

Рассмотрим, как можно определить размер и месторасположение листа и всех видов на нем.

В предыдущих версиях Revit сделать это было довольно проблематично.

Вот несколько статей на эту тему:

Опубликовано 12.05.2014     Читать далее >>>
07/05/2014

Не-DWG окна в AutoCAD 2015 с использованием .NET

AutoCAD 2015 позволяет создавать Не-DWG окна документов. Такие Не-DWG окна документов появляются как вкладки наряду с другими окнами документов чертежей.

В конце этой статьи я приложил готовый C# проект для создания Не-DWG окна документа и демонстрации его использования.

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

Не-DWG окна в AutoCAD 2015

AutoCAD 2015 позволяет создавать Не-DWG окна и попросту окна содержащие не dwg-файлы. Не-DWG окна появляются как вкладки точно так же, как и обычные окна с чертежами.

В конце этой статьи вы найдете ссылку на скачивание готового C++ проекта для создания Не-DWG окна и показа как его использовать.

Опубликовано 06.05.2014     Читать далее >>>
02/05/2014

Autodesk Exchange Apps - Вопросы и Ответы

Ниже приведены ответы на наиболее частые вопросы от разработчиков, публикующих приложения в Autodesk® Exchange Apps
Опубликовано 02.05.2014     Читать далее >>>
30/04/2014

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

Вопрос: Я могу получить список категорий, поддерживающих привязку общих параметров, например, с помощью такого кода:

Код - C#: [Выделить]
  SortedList<string, Category> CatList

    = new SortedList<string, Category>();

 

  Categories cats = doc.Settings.Categories;

 

  foreach( Category cat in cats )

  {

    if( cat.AllowsBoundParameters )

    {

      CatList.Add( cat.Name, cat );

    }

  }  

Но как мне из этого списка понять, поддерживает ли категория привязку параметра типа или экземпляра?

Опубликовано 30.04.2014     Читать далее >>>
30/04/2014

Где сейчас можно найти инсталляционные пакеты VBA для старых версий AutoCAD?

Где сейчас можно найти инсталляционные пакеты VBA для старых версий AutoCAD? К сожалению, с нынешнего момента невозможно загрузить пакеты VBA для AutoCAD 2011-2013
Опубликовано 30.04.2014     Читать далее >>>
30/04/2014

UNDO удаляет обновленные записи словаря

У меня есть команда, которая добавляет новую запись в Словарь Именованных Объектов (NOD) или обновляет значение существующего.

Проблема в том, что когда я запускаю команду дважды (во второй раз запись уже есть, так что в этот раз только обновляется ее значение) и когда мы запускаем команду _UNDO, тогда вместо того, чтобы вернуть предыдущее значение записи NOD, она удаляется полностью.

Опубликовано 30.04.2014     Читать далее >>>
28/04/2014

Лёгкое программирование под Autodesk Vault. Часть 16Автор: Дмитрий Емельянов

Управление ролями и группами пользователей при помощи Autodesk Vault API.
Опубликовано 28.04.2014     Читать далее >>>
28/04/2014

Серилизация класса .NET в базу чертежа AutoCAD

Вопрос:

Я хотел бы выполнить серилизацияю моего .NET класса в чертеж AutoCAD, так чтобы я мог воссоздать этот класс (десерилизация его), когда чертеж снова открывается. Как можно это сделать?

Ответ:
Вы можете использовать средства серилизации .NET вашего класса в двоичный поток, а затем можно сохранить в кучу бинарных кусков. Вы можете сохранить в XData объекта или в Xrecord.Data примитива или в объект в Словаря Именованных Объектов (NOD). DevNote TS2563 рассказывает нам отличия в использовании XData и Xrecord. Если вы сохраняете в XData, тогда ResultBuffer должен начинаться с имени зарегистрированного приложения REGAPP. Вот пример, который это показывает:

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