Всем привет. Сегодня неожиданно столкнулся с проблемой при работе с перегрузкой метода Create в классе PathReinforcement (http://www.revitapidocs.com/2017/efcdc1d2-97e2-1e4f-3ae9-38fd9e9e2767.htm) (Revit 2017.2).
Код метода:
public static PathReinforcement CreatePathReinforcement(
Floor floor,
Document document,
ExternalCommandData commandData)
{
// Getting analytical model from floor
AnalyticalModel analyticalModel = floor.GetAnalyticalModel();
if (analyticalModel == null)
{
throw new Exception("Can't get AnalyticalModel from the selected floor");
}
// Getting curves of analytical model
IList<Curve> curvesInput = analyticalModel.GetCurves(AnalyticalCurveType.ActiveCurves);
var curves = CounterBreak(curvesInput);
// Obtain the default types
var defaultRebarBarTypeId = document.GetDefaultElementTypeId(ElementTypeGroup.RebarBarType);
var defaultPathReinforcementTypeId = document.GetDefaultElementTypeId(ElementTypeGroup.PathReinforcementType);
var defaultHookTypeId = ElementId.InvalidElementId;
// Creating path reinforcement
var reinforcement = PathReinforcement.Create(
document,
floor,
curves,
true,
defaultPathReinforcementTypeId,
defaultRebarBarTypeId,
defaultHookTypeId,
defaultHookTypeId,
rebarProperties.RebarShapes.FirstOrDefault().Id);
return reinforcement;
}
Соответственно, срабатывает исключение: Autodesk.Revit.Exceptions ArgumentsInconsistentException startRebarHookTypeId cannot be set for given rebar shape. -or- endRebarHookTypeId cannot be set for given rebar shape.
В переводе на русский - начальный тип крюка не может быть установлен для данного шейпа, что уже странно, ведь в Revit руками можно установить для любого шейпа любой тип крюка.
Причем я пробовал ставить типы крюков не None, а формы стержней не первые в списке, а любые другие. Результат всегда остается тем же.
Заранее спасибо за помощь.
Извините, вам запрещён просмотр содержимого спойлеров.
Я понимаю, что вопрос достаточно узкоспециализированный, также допускаю, что людям, которые, возможно, хотели бы потестить, не хочется самим собирать проект, поэтому я тут максимально упростил и собрал все воедино:
Извините, вам запрещён просмотр содержимого спойлеров.
Соответственно, выскакивает исключение. Если закоммитить строчки 91 и 92, то метод отработает.
Также ниже прикрепляю файл Revit с одним-единственным перекрытием.
UPD. Почему-то не прикрепляется файл, собранный в архив. Поэтому вот (https://www.dropbox.com/s/o36dq1npirc3e1k/TestPathRein.rvt?dl=0)