Определение типа поверхности под выбранной точкой
Вопрос: Я пишу надстройку для Revit 2015 где мне нужно вставить семейство в проект.
Я хочу вставить семейство сразу на поверхность существующего элемента. Но, в зависимости от ситуации, я должен его вставить на различный тип поверхности. Например, на плоскую поверхность или цилиндрическую. Проблема в том, что я не могу определить тип поверхности перед тем как делать вставку.
Получение информации обо всех системных переменных .NETАвтор: Александр Ривилис
Получение информации обо всех системных переменных
В AutoCAD 2015 появилось новое API - AcEdSysVarIterator.
Класс “AcEdSysVarIterator” обеспечивает возможность пройтись по всем доступным системным переменным и получить их имена, типы данных, диапазоны (если доступны), значение «только для чтения» и где они хранятся.
Внимание: системные переменные, которые имеют флаг скрытости (т.е. "*" в качестве первого символа в имени) пропускаются этим итератором. В настоящее время мы можем получить всю информацию при помощи утилиты "SYSVDLG", включая скрытые системные переменные. Это API может пригодиться тем, кто хочет автоматизировать работу с системными переменными в клиентском приложении.
Получение упорядоченного набора ребер граней с использованием BRep
При перемещении по ребрам граней с использованием BRep API, ребра могут быть не упорядочены так, чтобы конечная точка предыдущего ребра совпадала с начальной точкой следующего ребра. Это происходит потому, что ребра разделяются между несколькими гранями, и это же ребро возвращается, когда мы снова проходим по другой грани. Так как начальные и конечные точки ребра остаются неизменными, то это будет признаком ориентации одной из граней.
Еще один способ обновить cвойства
Обновление свойств в файлов при помощи новых API функций Vault 2015 R2Как добавить связь с файлом Revit
В Revit можно создать связь с другим файлом Revit в помощью команды Вставка > Связать с Revit.
А как можно сделать то же самое, но используя API?
Как программно извлечь список горячих клавиш
Вопрос: Подскажите как можно получить список горячих клавиш с помощью Revit API.
Получение значений свойств из COM-обертки примитива
Когда создаём AutoCAD-приложение, достаточно просто получить свойства примитива без использования COM-обертки примитива. Но когда создается приложение RealDWG, может быть необходимым получить свойства примитива именно из COM-обертки.
Если вы используете .NET-языки, то можно воспользоваться «отражением». Вот эта статья может помочь:
Получение свойств и методов класса ActiveX/COM из .NET
Если вы используете C++ вы можете таким образом изменить пример DumpDwg из RealDWG SDK. В этом примере мы получаем свойства примитива, используя интерфейс IDispatch его COM-обертки. Например, если чертеж содержит примитив "AsdkPoly" из примера "ObjectARX 2015\samples\entity\polysampPolySamp".
Как получить параметры доступные для использования фильтрации спецификации
В Revit мы можем создать спецификацию с определенным фильтром. Таким образом, только элементы, удовлетворяющие фильтру, будут выведены в спецификации. Например, мы можем выбрать элементы, находящиеся только на уровне 1.
Есть ли какой-либо способ, получить все параметры, по которым можно отфильтровать для заданной категории?
Пример использования групп транзакций
Вопрос: Я создаю приложение, в котором мне нужно:
- Загрузить семейство из файла
- Получить объект FamilyManager из редактора семейств и получить доступ к некоторым параметрам.
- Поместить экземпляр семейства в проект.
Загрузка семейства в проект, осуществляется в транзакции. Затем, чтобы открыть редактор семейств, транзакция должна быть закрыта. А для размещения экземпляра изменённого семейства в проект, транзакция снова должна быть открыта.
По этой причине Revit создает два состояния, которые можно отменить с помощью операция «Отмена» - одно для каждой транзакции.
Если ли способ объединить две транзакции в одну, таким образом, чтобы была лишь одна операции отмены?
Я использую TransactionMode.Manual.
Автозагрузка проекта при запуске Revit
Вопрос: Мне интересно, как можно загрузить файл автоматически при загрузке Revit.
Класс UIControlledApplication является единственным параметром метода OnStartup класса, реализующего интерфейс IExternalApplication. А метод OpenAndActivateDocument есть только в классе UIApplication.
Как же вызвать метод UIApplication.OpenAndActivateDocument из метода OnStartup? Или может как-то можно решить эту проблему по-другому?
Изменение жизненных циклов элементов
Описание логики работы нового механизма жизненных циклов элементов в Vault 2015 R2Используем геолокацию с помощью ObjectARX
Это пример кода работы с геолокацией в чертеже AutoCAD. Если вы ищете пример кода на .NET, тогда посмотрите эту статью.
Чтобы попробовать этот код, вы должны быть подписаны на использование Autodesk 360 внутри AutoCAD.
Как защитить интеллектуальную собственность моего приложения на Autodesk Exchange - часть 3Автор: Daniel Du
Рассматриваются особенности лицензирования веб-служб, опубликованных в Autodesk Apps ExchangeСоздайте свой собственный Design Copy для Autodesk VaultАвтор: Doug Redmond
Описание логики работы Copy Design в Vault 2015 R2ObjectData AutoCAD Map 3D как простейшая альтернатива для создания цифровых картАвтор: Александр Шаров
О содержании: Object Data AutoCAD Map 3D — близкий к оптимальному способ описания дополнительных данных при графических элементах, который при достаточном оснащении соответствующими инструментами может превратить AutoCAD Map 3D в одно из наиболее эффективных ПО для цифрового картографирования.Установка данных геолокации в чертеже AutoCAD с использованием .NET
API геолокации AutoCAD - это очень актуальная и перспективная тема, которую пришло время обсудить. Итак начнем. :-)Ниже пример кода на основе показанной на ADN DevDays в конце 2013 года - для AutoCAD версии 2014, - но тогда API оказалась не полностью реализованным (по крайней мере, насколько я помню – если я не прав, то поправьте меня) до версии 2015.
Я воспользовался возможностью для того, чтобы использовать Editor.Command (), чтобы вызвать пару команд синхронно - для включения информации Geomap и для зумирования до окружности, которую мы создаем вокруг нашего места – теперь этот API доступен.
Подключить или отключить сетевой диск через LISP
Понадобилось тут мне поиграться с подключениями и отключениями сетевых дисков через LISP. Самое простое решение - использовать shell и стандартную команду Windows "net use ..." не подходило по нескольким причинамСортировка и расположение кривых для создания замкнутого контура
Мне нужно определить полигон, определяющий границу мебели и оборудования для манипуляций с ним на мобильном устройстве.
Для отображения полигона с помощью SVG в браузере мобильного устройства мне определенно необходим набор последовательных кривых, образующих замкнутый контур.
Я упоминал использование класса ExtrusionAnalyzer для определения границ экземпляра семейства. При тестировании данного подхода, я обнаружил, что возвращаемые кривые не отсортированы.
Прерывание вставки экземпляра семейства
Вопрос: В некоторых случаях нам нужно ограничить вставку семейства при использовании метода PromptForFamilyInstancePlacement() и разершить пользователю вставить только одно семейство.