понедельник, 16 марта 2015 г.

[Revit] - Почистить библиотеку семейств от временных файлов

При сохранении семейства создаются временные файлы с добавлением приставки - .0001.rfa, .0002.rfa и так далее.

Как быстро почистить библиотеку семейств можно посмотреть здесь

Если коротко - в проводнике windows открываем папку библиотеки, в окошке поиска файлов набираем 0001, происходит поиск файлов по маске, удаляем файлы в корзину.
И так далее - с 0002, 0003

От себя добавлю - по маске 0001 или 0002 в результаты поиска могут попадать семейства, в имени которых присутствует данная комбинация цифр.
Например: Шкаф обогрева кровли ШУ-ТС-07517-0001.rfa.

Чтобы случайно не удалить нужные семейства использую маску: .000?.rfa
Таким образом снижается вероятность удаления нужного семейства, плюс поиск выполняется только один раз.

Не следует исключать вариант такого именования - Шкаф обогрева кровли ШУ-ТС-07517.0001.rfa, поэтому удаление файлов делаю очень аккуратно.

четверг, 5 февраля 2015 г.

[API Revit] - Как назначить рабочий набор для элемента

Найти ID рабочего набора, записать его во встроенный параметр элемента - ELEM_PARTITION_PARAM.

Подробнее здесь

пятница, 12 декабря 2014 г.

[API Revit] - Перевод из футов в миллиметры

Значения геометрических параметров в API Revit выдаются в имперской системе измерений.
Для перевода единиц в метрическую систему пользуюсь методом ConvertFromInternalUnits класса UnitUtils.

Пример:

//Получение координаты Z точки вставки семейства

FamilyInstance LInstance = elem as FamilyInstance;
LocationPoint pt = LInstance.Location as LocationPoint;
string PtString =
UnitUtils.ConvertFromInternalUnits(pt.Point.Z, DisplayUnitType.DUT_MILLIMETERS).ToString();
TaskDialog.Show("Revit", PtString);


вторник, 9 декабря 2014 г.

[API Revit] - Не работает get_Parameter().Set()

Чтобы внести какое-либо изменение в модель требуется создать транзакцию. Очень доступно про транзакции описано в учебном курсе "Моя первая программа" для Autodesk Revit, урок 3.

Про регенерацию и транзакции есть выступление Бориса Шафиро на Autodesk University Russia 2014.

Наглядно результат использования транзакций можно посмотреть в видео Harry Mattison'а.


понедельник, 1 декабря 2014 г.

[API Revit] - Как определить в каком пространстве находится семейство

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

 FamilyInstance FInst = elem as FamilyInstance;
string SpaceName = FInst.Space.Name;
string SpaceId = FInst.Space.Id.IntegerValue.ToString();

среда, 26 ноября 2014 г.

[API Revit] RevitRubyShell

Наконец-то нашёл консоль для API Revit.
Автор - Håkon Clausen, на его странице есть ссылки на репозиторий в GitHub и на установщик.

вторник, 25 ноября 2014 г.

[API Revit] - Как получить встроенные наименования параметров элемента

Хочу показать на простом примере работу Revit Lookup.

1. Выбрать элемент
2. В Revit Lookup выбрать "Snoop Current Selection..."
3. В разделе "Element" выбрать "Parameters"
4. Если требуется получить встроенный параметр одного элемента, то в разделе "Parameter" выбрать "Definition"




пятница, 21 ноября 2014 г.

[API Revit] - Как определить, в каком помещении находится элемент

Встроенные параметры помещения для элемента:

ELEM_ROOM_NUMBER
ELEM_ROOM_NAME
ELEM_ROOM_ID

Пример:

{
String info = "Параметры помещения для элемента: \n\t";
foreach (Element elem in collection)
{
Parameter param = elem.get_Parameter(BuiltInParameter.ELEM_ROOM_NUMBER);
info += "\n\t Номер помещения: " + param.AsString();

param = elem.get_Parameter(BuiltInParameter.ELEM_ROOM_NAME);
info += "\n\t Имя помещения: " + param.AsString();

param = elem.get_Parameter(BuiltInParameter.ELEM_ROOM_ID);
info += "\n\t ID помещения:" + param.AsValueString();
}
TaskDialog.Show("Revit", info);
}

четверг, 20 ноября 2014 г.

[CodeToGo] Приложение для iOs - редактор исходных текстов

Дельная программа, пользуюсь для чтения в дороге примеров из SDK API Revit и Developer Guide PDF. В редакторе код программы почему-то воспринимается значительно лучше, чем в pdf. Не хватает только подсветки для классов Revit API.

среда, 19 ноября 2014 г.

[Revit] - Базовая точка при повороте элементов

Чтобы быстро перейти к заданию базовой точки для поворота элементов после вызова команды "Повернуть" нажать пробел.

Нашёл тут

UPD:

Побаловался немного.
Если зажать Ctrl при активной команде "Выровнять", то активизируется галка "Множественное выравнивание",
при команде "Обрезать/Удлинить один элемент" включается режим "Обрезать/Удлинить нескольких элементов",
при команде "Смещение", "Зеркало", "Поворот" управляет галкой "Копировать"