ADN Club > Revit API
TakeOff FacingFlipped
(1/1)
Алексей Кузин:
Доброго дня.
Не буду углубляться в суть задачи.
Построим 2 TakeOff как на рисунке. у левого FacingFlipped = true.
Почему устанавливается FacingFlipped. можно ли как то этого избежать? (CanFlipFacing = false)
Виктор Чекалин:
Добрый день.
CanFlipFacing лишь означает, можно ли вручную менять ориентацию лицевой стороны (В пользовательском интерфейсе, либо программно с помощью метода flipFacing())
FacingFlipped для данного фитинга означает с какой стороны от трубы/воздуховода примыкает данный фитинг.
Изменить это нельзя. Да и собственно, зачем?
Алексей Кузин:
Добрый день.
Печально что вы подтвердили мои изыскания.
Нужно это для соответствия с MEP. имеем 2 идентичные takeoff в Revit и MEP. Если мы рисуем takeoff слева от трубы то получаем что в revit данный takeoff меняет свою ориентацию по оси Y и строится как бы в левостронней системе координат. Например для takeoff-transition который имеет смещение по двум направлениям получаем ситуацию что при аналогичных параметрах в Revit и MEP построение будет различаться.
Одно из возможных решений - это в rfa вводить дополнительный параметр - флаг который определяет ориентацию. И в зависимости от этого флага выставлять геометрию.
Например:
Left Set Filtered = if(FacingFlipped, -Right Set, Left Set)
Назначение этого флага можно задать в DMU.
--- Код - C# [Выбрать] ---public void Execute(UpdaterData data) { var doc = data.GetDocument(); foreach (var el in data.GetAddedElementIds()) SetFacingFlipped(doc, el); } private void SetFacingFlipped(Document doc, ElementId el) { Element element = doc.GetElement(el); if (element != null && element.Name == "Tap - Transition") { var fi = element as FamilyInstance; if (fi != null) { var para = element.get_Parameter("FacingFlipped"); if (para != null && !para.IsReadOnly) { var pType = para.StorageType; if (pType == StorageType.Double) { para.Set( fi.FacingFlipped ? 1 : 0); doc.Regenerate(); } } } } }
Собственно вопрос - правильно ли я думаю что у takeoff FacingFlipped выставляется только при создании (определяется ориентация) и входе любых манипуляций не меняется?
Навигация
Перейти к полной версии