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

22/02/2015

Пример использования групп транзакций

Вопрос: Я создаю приложение, в котором мне нужно:

  1. Загрузить семейство из файла
  2. Получить объект FamilyManager из редактора семейств и получить доступ к некоторым параметрам.
  3. Поместить экземпляр семейства в проект.

Загрузка семейства в проект, осуществляется в транзакции.  Затем, чтобы открыть редактор семейств, транзакция должна быть закрыта. А для размещения экземпляра изменённого семейства в проект, транзакция снова должна быть открыта.

По этой причине Revit создает два состояния, которые можно отменить с помощью операция «Отмена» - одно для каждой транзакции.

Если ли способ объединить две транзакции в одну, таким образом, чтобы была лишь одна операции отмены?

Я использую TransactionMode.Manual.

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

Автозагрузка проекта при запуске Revit

Вопрос: Мне интересно, как можно загрузить файл автоматически при загрузке Revit.

Класс UIControlledApplication является единственным параметром метода OnStartup класса, реализующего интерфейс IExternalApplication. А метод OpenAndActivateDocument есть только в классе UIApplication.

Как же вызвать метод UIApplication.OpenAndActivateDocument из метода OnStartup? Или может как-то можно решить эту проблему по-другому?

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

Изменение жизненных циклов элементов

Описание логики работы нового механизма жизненных циклов элементов в Vault 2015 R2
Опубликовано 21.02.2015     Читать далее >>>
20/02/2015

Используем геолокацию с помощью ObjectARX

Это пример кода работы с геолокацией в чертеже AutoCAD. Если вы ищете пример кода на .NET, тогда посмотрите эту статью.

Чтобы попробовать этот код, вы должны быть подписаны на использование Autodesk 360 внутри AutoCAD.

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

Как защитить интеллектуальную собственность моего приложения на Autodesk Exchange - часть 3Автор: Daniel Du

Рассматриваются особенности лицензирования веб-служб, опубликованных в Autodesk Apps Exchange
Опубликовано 18.02.2015     Читать далее >>>
17/02/2015

Создайте свой собственный Design Copy для Autodesk VaultАвтор: Doug Redmond

Описание логики работы Copy Design в Vault 2015 R2
Опубликовано 17.02.2015     Читать далее >>>
17/02/2015

ObjectData AutoCAD Map 3D как простейшая альтернатива для создания цифровых картАвтор: Александр Шаров

О содержании: Object Data AutoCAD Map 3D — близкий к оптимальному способ описания дополнительных данных при графических элементах, который при достаточном оснащении соответствующими инструментами может превратить AutoCAD Map 3D в одно из наиболее эффективных ПО для цифрового картографирования.
Опубликовано 17.02.2015     Читать далее >>>
16/02/2015

Установка данных геолокации в чертеже AutoCAD с использованием .NET

API геолокации AutoCAD - это очень актуальная и перспективная тема, которую пришло время обсудить. Итак начнем. :-)

Ниже пример кода на основе показанной на ADN DevDays в конце 2013 года - для AutoCAD версии 2014, - но тогда API оказалась не полностью реализованным (по крайней мере, насколько я помню – если я не прав, то поправьте меня) до версии 2015.

Я воспользовался возможностью для того, чтобы использовать Editor.Command (), чтобы вызвать пару команд синхронно - для включения информации Geomap и для зумирования до окружности, которую мы создаем вокруг нашего места – теперь этот API доступен.

Опубликовано 16.02.2015     Читать далее >>>
16/02/2015

Подключить или отключить сетевой диск через LISP

Понадобилось тут мне поиграться с подключениями и отключениями сетевых дисков через LISP. Самое простое решение - использовать shell и стандартную команду Windows "net use ..." не подходило по нескольким причинам
Опубликовано 16.02.2015     Читать далее >>>
15/02/2015

Сортировка и расположение кривых для создания замкнутого контура

Мне нужно определить полигон, определяющий границу мебели и оборудования для манипуляций с ним на мобильном устройстве.

Для отображения полигона с помощью SVG в браузере мобильного устройства мне определенно необходим набор последовательных кривых, образующих замкнутый контур.

Я упоминал использование класса ExtrusionAnalyzer для определения границ экземпляра семейства. При тестировании данного подхода, я обнаружил, что возвращаемые кривые не отсортированы.

Опубликовано 15.02.2015     Читать далее >>>
14/02/2015

Прерывание вставки экземпляра семейства

Вопрос: В некоторых случаях нам нужно ограничить вставку семейства при использовании метода PromptForFamilyInstancePlacement() и разершить пользователю вставить только одно семейство.

Опубликовано 14.02.2015     Читать далее >>>
14/02/2015

Как защитить интеллектуальную собственность моего приложения на Autodesk Exchange - часть 2Автор: Daniel Du

Рассматриваются особенности лицензирования веб-служб, опубликованных в Autodesk Apps Exchange
Опубликовано 14.02.2015     Читать далее >>>
13/02/2015

Создание DWF-подложки в AutoCAD лиспом

Понадобилось мне тут вставить несколько dwf (или dwfx, не столь суть важно) в текущий документ dwg. Естественно, что захотелось мне задачку решить лиспом, да без применения команд типа _.dwfattach.
Опубликовано 13.02.2015     Читать далее >>>
13/02/2015

Как защитить интеллектуальную собственность моего приложения на Autodesk Exchange - часть 1Автор: Daniel Du

Рассматриваются особенности лицензирования веб-служб, опубликованных в Autodesk Apps Exchange
Опубликовано 13.02.2015     Читать далее >>>
13/02/2015

Модификация Ленты

Вопрос:

Я хочу изменить содержимое Ленты (Ribbon) – добавлять/удалять панели, и т.д.. Как это можно сделать?

Ответ:

Это доступно только при помощи AutoCAD .NET API.

Есть два набора функций:

1) RibbonRuntimeAPI – содержащееся в AdWindows.dll в пространстве имён Autodesk.Windows

Позволяет модифицировать Ленту, но изменения не будут сохраняться в CUIx файл, так что при перезапуске AutoCAD, или даже при переключении рабочего пространства (системной переменной WSCURRENT) или при перезагрузке меню все сделанные вами изменения пропадут и вам понадобится всё повторять.

Опубликовано 13.02.2015     Читать далее >>>
12/02/2015

Как найти все внешние ссылки в текущей базе с помощью C#

Метод Database.GetHostDwgXrefGraph() возвращает иерархию внешних ссылок для текущего чертеж в виде объекта XrefGraph. Ниже простой пример, демонстрирующий его использование – печать структуры этой иерархии для текущего чертежа в командной строке.
Опубликовано 12.02.2015     Читать далее >>>
11/02/2015

При использовании WblockCloneObjects скопированные в Пространство Модели примитивы исчезают в текущем чертеже

Это известное поведение метода Database.WblockCloneObjects() когда он используется с чертежом, открытым в AutoCAD. Проделайте следующие шаги для того, чтобы обойти это ограничение:
  1. Сделайте целевой чертеж текущим документом
  2. Вызовите метод TransactionManager.QueueForGraphicsFlush() для запроса обновления графики

Пожалуйста не забудьте сделать целевой чертеж текущим до использования TransactionManager.QueueForGraphicsFlush() в противном случае это не даст никакого эффекта. Также не забудьте блокировать/разблокировать документ.

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

Получение глобального имени DIMLDRBLK в локализованной версии AutoCAD

Когда мы используем английскую версию AutoCAD, вы можете непосредственно получить имя системной переменной стрелки выноски, используя системную переменную DIMLDRBLK. Но когда используется локализованная версия AutoCAD, эта системная переменная хранит локализованную системную переменную, например, "Punkt" в немецкой и "Точка" в русской версии для стрелки выноски DOT.

Опубликовано 09.02.2015     Читать далее >>>
07/02/2015

Использование WeakEventManager с событиями AutoCAD

Недавно мы получили вопрос от разработчика об использовании Менеджера Слабых Событий (WeakEventManager) при работе с событиями AutoCAD. В этой статье мы увидим три разных версии подписки на событие завершение команды (CommandEnded) класса Document. Преимущество использования WeakEventManager в предотвращение утечки памяти, когда на событие подписаны, но они уже не нужны. Но при этом использование WeakEventManager имеет свою цену, так как события теперь доставляются через менеждер событий. Дополнительная цена использования шаблона слабых событий отлично расписана в этой статье Reed Copsey.

Рекомендуется отписываться от событий AutoCAD вручную, но следующие образцы кода должны продемонстрировать использование WeakEventManager в том случае если он вам нужен.

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

Ассоциация гиперссылки с BlockTableRecord

В ObjectARX BlockTableRecord обеспечивает доступ к коллекции своих гиперссылок при помощи AcDbEntityHyperlinkPE интерфейса. В AutoCAD 2015 к гиперссылкам можно получить доступ и при помощи AutoCAD .NET API.

Вот образцы кода на C++ и на .NET, которые создают блок с гиперссылкой к блогу AutoCAD DevBlog:

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