Добрый день.
Печально что вы подтвердили мои изыскания.
Нужно это для соответствия с MEP. имеем 2 идентичные takeoff в Revit и MEP. Если мы рисуем takeoff слева от трубы то получаем что в revit данный takeoff меняет свою ориентацию по оси Y и строится как бы в левостронней системе координат. Например для takeoff-transition который имеет смещение по двум направлениям получаем ситуацию что при аналогичных параметрах в Revit и MEP построение будет различаться.
Одно из возможных решений - это в rfa вводить дополнительный параметр - флаг который определяет ориентацию. И в зависимости от этого флага выставлять геометрию.
Например:
Left Set Filtered = if(FacingFlipped, -Right Set, Left Set)
Назначение этого флага можно задать в DMU.
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 выставляется только при создании (определяется ориентация) и входе любых манипуляций не меняется?