27/06/2014
Как определить тип выступающего профиля стены (Wall Sweep Type) для использования в методе WallSweep.Create()
Вопрос: В Revit SDK есть метод для создания выступающего профиля стены. Он объявлен как:
Код - C#: [Выделить]
- WallSweep.Create( Wall wall,
- ElementId wallSweepType,
- WallSweepInfo wallSweepInfo)
Вторым параметром необходимо передать тип профиля, но я не знаю, как мне его получить и поэтому у меня не получается воспользоваться этим методом. Скажите, как правильно получить значение этого параметра для передачи его в метод?
Ответ: Вот пример кода, в котором показано как это можно сделать:
Код - C#: [Выделить]
- private ElementId GetSweepOrRevealTypeId(
- WallSweepType sweepType)
- {
- FilteredElementCollector wallSweeps =
- new FilteredElementCollector(RevitDoc);
- wallSweeps.OfClass(typeof(WallSweep));
- Func<WallSweep, bool> IsUnfixedSweep = sweep =>
- !sweep.GetWallSweepInfo().IsFixed &&
- sweep.GetWallSweepInfo().WallSweepType == sweepType;
- return
- wallSweeps.OfType<WallSweep>().
- FirstOrDefault<WallSweep>(IsUnfixedSweep)
- .GetTypeId();
- }
- WallSweep sweep = WallSweep.Create(wall,
- GetSweepOrRevealTypeId(WallSweepType.Sweep),
- sweepInfo);
И еще один вариант:
Код - C#: [Выделить]
- FilteredElementCollector collector= new FilteredElementCollector(RevitDoc);
- collector.OfCategory(BuiltInCategory.OST_Cornices);
- ElementType wallSweepType = collector.FirstElement() as ElementType;
Обсуждение: http://adn-cis.org/forum/index.php?topic=836
Опубликовано 27.06.2014