пятница, 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();