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 выставляется только при создании (определяется ориентация) и входе любых манипуляций не меняется?

Навигация

[0] Главная страница сообщений

Перейти к полной версии