Вопрос по ReferenceIntersector

Автор Тема: Вопрос по ReferenceIntersector  (Прочитано 4536 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн YLSVАвтор темы

  • ADN OPEN
  • Сообщений: 23
  • Карма: 0
Вопрос по ReferenceIntersector
« : 13-11-2020, 22:57:45 »
 Мне нужно определить потолки в связанном файле. Делаю так:


Код - C# [Выбрать]
  1.             var intersector = new ReferenceIntersector(new ElementCategoryFilter(BuiltInCategory.OST_Ceilings),
  2.                                                       FindReferenceTarget.All, View3D);
  3.  
  4.             intersector.FindReferencesInRevitLinks = true;
  5.  
  6.             ReferenceWithContext referenceWithContextCeilings = intersector.FindNearest(ptCenter, rayDirection);



   View3D - создан самостоятельно и видимость потолков включена. Но работает непонятно. Часть потолков в одном помещении  находит нормально, а часть пропускает, хотя они ничем не отличаются друг от друга. Может быть подскажете, в чем может быть проблема ?

« Последнее редактирование: 14-11-2020, 07:53:10 от YLSV »

Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: Вопрос по ReferenceIntersector
« Ответ #1 : 13-11-2020, 23:05:24 »
Фильтры, стадии, рабочие наборы? Может ещё уровень детализации влияет. Ну и, не исключен вариант ошибки в коде, уверен насчёт построенного луча?

Оффлайн YLSVАвтор темы

  • ADN OPEN
  • Сообщений: 23
  • Карма: 0
Re: Вопрос по ReferenceIntersector
« Ответ #2 : 13-11-2020, 23:10:42 »
Ну насчет луча да, все верно. Делал другим способом до этого. Находил ссылку на документ ссылочного файла и использовал 3Д вид  оттуда. И все работало. Все было бы хорошо, но в некоторых проектах потолки могут скрывать и тогда я их не нахожу. Поэтому я создал свой вид в активном документе и вот так теперь получается. Возможно вид не так создал?

 Вот так делал

Код - C# [Выбрать]
  1.  
  2. ViewFamilyType vft = new FilteredElementCollector(Doc)
  3.                     .OfClass(typeof(ViewFamilyType))
  4.                     .Cast<ViewFamilyType>()
  5.                     .FirstOrDefault(x => ViewFamily.ThreeDimensional == x.ViewFamily);
  6.  
  7.                 using (var trans = new Transaction(Doc))
  8.                 {
  9.                     trans.Start("Create 3D View");
  10.  
  11.                     if (vft != null) RbimView3D = View3D.CreateIsometric(Doc, vft.Id);
  12.  
  13.                     if (RbimView3D != null)
  14.                     {
  15.                         RbimView3D.Name = "R-BIM View";
  16.                         ParameterFilterElement parameterFilterElement =  ParameterFilterElement.Create(Doc, "R-BIM filter", categories);
  17.  
  18.                         RbimView3D.AddFilter(parameterFilterElement.Id);
  19.                         RbimView3D.SetFilterVisibility(parameterFilterElement.Id, true);
  20.                     }
  21.  
  22.                     trans.Commit();
  23.                 }
  24.  
  25.  

 
« Последнее редактирование: 14-11-2020, 07:59:25 от YLSV »

Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: Вопрос по ReferenceIntersector
« Ответ #3 : 13-11-2020, 23:56:03 »
Потенциально, этого маловато будет, честно говоря. В ViewFamilyType может быть задан шаблон, плюс опять же видимость рабочих наборов, стадии и прочее. Пробовал посмотреть глазами вид, который создаешь?

Оффлайн YLSVАвтор темы

  • ADN OPEN
  • Сообщений: 23
  • Карма: 0
Re: Вопрос по ReferenceIntersector
« Ответ #4 : 14-11-2020, 00:02:02 »
Да, конечно. Смотрел. Потолки видны. Причем рядом друг с другом. Но один виден, другой нет. Может уровень детализации добавить?
 Или еще какие то параметры? Можно ли пример привести?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13923
  • Карма: 1793
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Вопрос по ReferenceIntersector
« Ответ #5 : 14-11-2020, 01:21:34 »
YLSV,
Напоминаю про правило форматирования кода на форуме (у меня в подписи)!
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн YLSVАвтор темы

  • ADN OPEN
  • Сообщений: 23
  • Карма: 0
Re: Вопрос по ReferenceIntersector
« Ответ #6 : 14-11-2020, 07:58:08 »
Прошу прощения,не повторится.
 По сути дела.
 Я так понял, что вопрос сводится к правильной настройке создаваемого 3Д вида. Значит задача такая. Как правильно настроить параметры вида,чтобы ReferenceIntersector находил все потолки(BuiltInCategory.OST_Ceilings) в связанном файле