Надстройки Vault и диспетчер приложений
Ранее Vault мог загружать надстройки только из одного расположения. Начиная с 2014 версии, он может загружать надстройки из трёх местоположений. Для поддержания работы менеджера приложений были добавлены два новых местоположения. Так, если вы разработали приложение для магазина Vault Exchange, вы можете установить его в местоположения, с которыми работает App Manager.
Как узнать если у блока определения атрибутов?
Определения атрибутов хранятся вместе со всеми остальными примитивами, составляющими блок. А когда добавляется ссылка на блок, то вставляются и соответствующие ссылки атрибутов. Один из способов определить наличие определений атрибутов в блоке – это использование метода “BlockTableRecord.HasAttributeDefinitions” соответствующей записи таблицы блоков.Удаление неиспользуемых блоков
Ниже код показывает процедуру очистки таблицы блоков. Обратите внимание на цикл Do/while для удаления вложенных блоков.Удаление неиспользуемых слоёв из чертежа
Метод Database.Purge можно использовать для идентификации неиспользованных слоёв. Если установлено что слой неиспользованный, то его можно безопасно удалять из базы при помощи метода “erase”.Заметим, что логика очень похожа на логику удаления неиспользованных зарегистрированных приложений из чертежа.
Удаление неиспользуемых имен приложений из базы
Метод Database.Purge API можно использовать для идентификации неиспользуемых имён приложений. Когда имена неиспользованных приложений получены, так сразу можно использовать метод “erase” для удаления их из базы.Создание и доступ к информации фильтра слоёв
Ниже примеры с использованием ObjectARX и .NET создания и манипулирования фильтрами слоёв. Простейший способ для того, чтобы узнать выражение фильтра слоёв – это создать его средствами AutoCAD и использовать этот код для поиска фильтра слоёв. Это можно затем использовать в коде для создания нового фильтра слоёв.Получение копии примитива
Следующий код демонстрирует использование метода “DeepCloneObjects” для получения копии примитива, который уже находится в базе. Сначала код просит указать один примитив, затем делает его «глубокую копию» и меняет цвет примитива на красный. Для идентификации нового примитива код использует класс “IdMapping”, который позволяет получить связь между оригинальным объектом и его копией.
Сокращенное наименование единиц измерения
Сегодня мы рассмотрим как можно получить единицу измерения для любого заданного параметра, а также подходящее сокращенное наименование этой единицы измерения.
В Revit 2014 появилось новое API для работы с единицами измерения, с помощью которого можно легко решить те проблемы, с которыми мы сталкивались ранее при работе с единицами измерения. И я еще до сих пор не изучил подробно все эти методы.
Обновление 2 для Revit 2014
На страничке Autodesk Revit опубликована информация о вышедшем втором обновлении для Revit 2014:
- Revit 2014 Обновление 2
- Revit Architecture 2014 Обновление 2
- Revit MEP 2014 Обновление 2
- Revit Structure 2014 Обновление 2
Генерирование данных об использовании слоёв перед очисткой/удалением
Иногда случается, что не удаётся очистить слой и его свойство "IsUsed" возвращает trueдаже если этот слой не используется. Причина этого в том, что AutoCAD хранит информацию об использованных слоях и обновляет её только тогда, когда это требуется. Чтобы форсировать обновление этих данных следует использовать метод "GenerateUsageData" объекта LayerTable.Это пример кода, который пытается удалить записи таблицы слоёв после вызова "GenerateUsageData".
Как сделать невидимую вставку атрибута видимой?
Если у определения блока для данной вставки блока есть невидимое определение атрибута, тогда и у вставки блока будет невидимый атрибут. Но вы можете сделать такие атрибуты видимыми при помощи кода, как показано ниже. Невидимые вставки атрибутов идентифицируются свойством “AttributeReference.Invisible”Очистка чертежа от анонимных блоков
Вопрос:Как я могу удалить из чертежа все неименованные (и не вставленные) блоки из чертежа программно?
Ответ:
Очистить чертеж от всех неимеющих ссылок объектов можно при помощи метода PurgeAll
Как разместить равноудаленные друг от друга точки вдоль кривой
Как можно сгенерировать список точек, равноудаленных друг от друга, вдоль кривой?
На самом деле это довольно нетривиальная задача, так как Revit API содержит лишь методы для работы с кривыми основываясь на внутренней параметризации кривых, и не содержит методов для работы с кривыми в системе координат проекта.
Я недавно уже рассказывал о том, как создать кривую, расположенную посередине, между двумя другими кривыми, в которой я основываюсь на вычислении двух кривых в их естественном внутреннем параметризованном пространстве.
Создание PolyfaceMesh из 3D Solid
Это пример кода, создающего многогранную сеть из твердого тела. Большая часть в этом коде из статьи в блоге Kean Walmsleyна похожую тему с некоторыми дополнениями создающую многогранную сеть. Как и в оригинальной статье, я тестировал код со сферой, так что для более сложных тел возможно потребуется настройка параметров.Как определить месторасположение элемента из связанного файла в системе координат основного файла
Вопрос: Я все воюю со связанными файлами в Revit 2014.
Я прочитал статью Как вывести список элементов из связанного файла (на англ.) и она мне действительно очень помогла.
Проблема в том, что в той статье описывается как получить координаты элемента в системе координат связанного файла.
Скажем, есть у меня связанный файл, в котором находится только одна стена. В этом файле стена располагается в точке 100;100;0.
В основном файле, я поместил эту стену в точку 300;100;0.
Мне нужно определить расположение стены из связанного файла внутри основного файла. То есть я хочу получить координаты 300;100;0.
Как можно это сделать?
Предотвращение удаления примитива
Один из путей для предотвращения удаления примитива – это использование объектного переопределение (overrule). При помощи этого переопределения можно переопределить функционал удаления (“Erase”) таким образом, что примитив нельзя будет удалить.Использование .NET API для добавления и удаления расширенных данных
Чтение/запись свойства XData экземпляра класса Autodesk.AutoCAD.DatabaseServices.DBObject используется для чтения и установки расширенных данных любого объекта из базы чертежа. Этот пример демонстрирует тоже самое для примитива..Сыграем в крестики-нолики в Autodesk Inventor под Autodesk Vault?Автор: Дмитрий Емельянов
Каким образом обучение конечного пользователя можно сделать менее болезненным и более прозрачным? Конечно, превратив обучение в игру!
Иногда требуется довольно длительное время для того, чтобы пользователь набил руку в операции получения/возврата. Либо администратору необходимо обкатать жизненный цикл или пользовательское взаимодействие на конкретной сборке.
Переопределение точек привязки для вставки блока
При переопределении точек привязки примитива BlockReference, мы можем хотеть отключить все остальные точки привязки, в том числе и те, которые получаются из примитивов, составляющих блок. Для этой цели мы переопределяем метод "IsContentSnappable" класса "OsnapOverrule".Вот пример, который добавляет точку центра блока в качестве точки привязки, а все остальные точки привязки (в том числе и точки привязки составляющих блок примитивов) игнорируются.