CurtainWall Host

Автор Тема: CurtainWall Host  (Прочитано 7053 раз)

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

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

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
CurtainWall Host
« : 15-08-2019, 12:47:50 »
Витраж CurtainWall и Стена Wall относятся к классу Wall ,не имеющего свойства Host
Витраж можно вставить в стену и при этом будет вырезан контур, как в случае вставки двери или окна.
Вопрос : как определить вставлен ли витраж в стену ?

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Re: CurtainWall Host
« Ответ #1 : 15-08-2019, 12:53:53 »
Если стена является витражной, то у нее будут элементы в свойстве CurtainGrid. Если стена обычная, то CurtainGrid == null

Отмечено как Решение enot 15-08-2019, 17:00:33

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: CurtainWall Host
« Ответ #2 : 15-08-2019, 12:57:31 »
У стены, в которую вставляется витраж в списке, возвращаемом методом FindInserts, могут быть элементы витражных стен. 3 параметр includeEmbeddedWalls

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

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: CurtainWall Host
« Ответ #3 : 15-08-2019, 13:04:36 »
FindInserts
Стенка линкованная , FindInserts вообще ничего не возвращает (не знаю может что то не так делаю...)

3 параметр includeEmbeddedWalls
это где можно посмотреть?

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: CurtainWall Host
« Ответ #4 : 15-08-2019, 13:06:44 »
Метод вызывать надо у стены, в которую вставляется витраж.

Что значит "линкованная"?

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

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: CurtainWall Host
« Ответ #5 : 15-08-2019, 13:07:23 »
линкованная
из связанного документа )

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

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: CurtainWall Host
« Ответ #6 : 15-08-2019, 13:09:39 »
Метод вызывать надо у стены
у стены нет такого свойстсва...
https://www.revitapidocs.com/2019/d0678575-843b-42ea-c91d-c94b13d7dd4f.htm

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: CurtainWall Host
« Ответ #7 : 15-08-2019, 13:22:02 »
у стены нет такого свойстсва...
Э? Шта?



https://www.revitapidocs.com/2019/58990230-38cb-3af7-fd25-96ed3215a43d.htm

Со связанными файлами сложнее, надо поковырять


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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: CurtainWall Host
« Ответ #8 : 15-08-2019, 14:01:47 »
Так. Для связанных файлов этот вопрос не имеет смысла. В одном файле по одной линии создаются 2 стены, а затем из одной вырезается вторая (витраж). Вырезать из стены в связанном файле витражную стену в текущем нельзя. Так что витражная стена просто имеет какое-то положение и геометрию.

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Re: CurtainWall Host
« Ответ #9 : 15-08-2019, 14:03:42 »
У стены, в которую вставляется витраж в списке, возвращаемом методом FindInserts, могут быть элементы витражных стен. 3 параметр includeEmbeddedWalls
А к EmbeddedWalls может относится что-то еще, кроме витражных стен?

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: CurtainWall Host
« Ответ #10 : 15-08-2019, 14:13:27 »
Да не должно вообще говоря.

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

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: CurtainWall Host
« Ответ #11 : 15-08-2019, 14:43:10 »
Так. Для связанных файлов этот вопрос не имеет смысла. В одном файле по одной линии создаются 2 стены, а затем из одной вырезается вторая (витраж). Вырезать из стены в связанном файле витражную стену в текущем нельзя. Так что витражная стена просто имеет какое-то положение и геометрию.
Видимо еще не вник в суть ответа...

у меня вся геометрия , стены с вставленными в них окнами /дверьми / витражными стенами находятся в связанном документе.

Подскажите, у Вас вообще FindInserts из линк-стены что то возращает - двери /окна?

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: CurtainWall Host
« Ответ #12 : 15-08-2019, 15:18:46 »
А, ну тогда другой вопрос. FindInserts работает без проблем, как в основном, так и в связанном файле.

Вероятно, Вы таки не внимательно читаете ответы. Insert-ы ищем не у витражной стены, а у той, в которую витражная вставлена

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

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: CurtainWall Host
« Ответ #13 : 15-08-2019, 15:22:29 »
Вероятно, Вы таки не внимательно читаете ответы. Insert-ы ищем не у витражной стены, а у той, в которую витражная вставлена
у меня как раз в первый вопрос был:
как определить вставлен ли витраж в стену ?
То есть имея витраж в связанном файле , определить вставлен ли он в стену, если да то в какую.
Тут видимо надо идти от обратного : ищем вначале все стены потом через Embedeed находим CurtainWall и сравниваем с текущим CurtainWall связанного файла (а спец метода по моему вопросу нет)

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: CurtainWall Host
« Ответ #14 : 15-08-2019, 15:25:56 »
Разверните задачу, пройдитесь по стенам в проекте, найдите вставленные в них витражи, соберите новый кортеж - (витраж, родительская стена)

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

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: CurtainWall Host
« Ответ #15 : 15-08-2019, 15:30:34 »
Разверните задачу, пройдитесь по стенам в проекте, найдите вставленные в них витражи, соберите новый кортеж - (витраж, родительская стена)

Финальный вопрос : если мне конкретно витражи нужны , то стоит ли в свойстве FinInserts для addRectOpenings поставить false (насколько я понимаю здесь будет поиск дверей и окон)

 
Цитировать
IList<ElementId> FindInserts(
   bool addRectOpenings,
   bool includeShadows,
   bool includeEmbeddedWalls,
   bool includeSharedEmbeddedInserts
)

т.е. для ускорения поиска вставленных витражей производить поиск так : FindInserts(false, false, true, false) ?

------------------------------------------------------------------------
ps постфинальный вопрос includeSharedEmbeddedInserts - что это...  :-\

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: CurtainWall Host
« Ответ #16 : 15-08-2019, 15:57:05 »
т.е. для ускорения поиска вставленных витражей производить поиск так : FindInserts(false, false, true, false) ?

Да

ps постфинальный вопрос includeSharedEmbeddedInserts - что это...  :-\

Например, вент.фасады моделируют отдельной параллельной стеной и объединяют геометрию этих 2 стен. В этом случае, дверь или окно также прорезает стену, моделирующую вент.фасад. При запуске FindInserts на вент.фасадной стенке будут найдены экземпляры семейств, у которых host не совпадает с этой стеной

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

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: CurtainWall Host
« Ответ #17 : 15-08-2019, 16:09:07 »
При запуске FindInserts на вент.фасадной стенке будут найдены экземпляры семейств, у которых host не совпадает с этой стеной
Вы имеете  ввиду такое будет при запуске FindInserts  с опцией includeSharedEmbeddedInserts  = true ?

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: CurtainWall Host
« Ответ #18 : 15-08-2019, 16:42:28 »
Да, конечно.

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

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: CurtainWall Host
« Ответ #19 : 15-08-2019, 17:02:55 »
Большущее спасибо ! Очень благодарен!

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

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: CurtainWall Host
« Ответ #20 : 15-08-2019, 22:52:18 »
Обнаружил пару проблем для витража из связанного документа
1.) FindInserts ничего не возвращает
2.) Не получается получить Solid этого витража

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: CurtainWall Host
« Ответ #21 : 16-08-2019, 10:18:25 »
1) FindInserts работает, проверяйте свой код/модель
2) Витражные стены твердотельной геометрии не имеют, да. В связанном или не связанном файле значения не имеет. Геометрия есть у импостов и панелей.

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

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: CurtainWall Host
« Ответ #22 : 16-08-2019, 11:29:37 »
FindInserts не находит ничего ни в связанном, ни в самом документе.

Возможно проблема в самом витраже?

https://cloud.mail.ru/public/5t1W/4xNcnixXJ 

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: CurtainWall Host
« Ответ #23 : 16-08-2019, 12:23:58 »
Э?? У Вас в модели ровно одна стена. Витражная. Что по вашему должен найти метод FindInserts?

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

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: CurtainWall Host
« Ответ #24 : 16-08-2019, 12:25:01 »
Панели витража/импосты

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: CurtainWall Host
« Ответ #25 : 16-08-2019, 12:28:22 »
Код - C# [Выбрать]
  1. wall.CurtainGrid.GetPanelIds();

Код - C# [Выбрать]
  1. wall.CurtainGrid.GetMulionIds();

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

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: CurtainWall Host
« Ответ #26 : 16-08-2019, 12:32:35 »
Точно..
Мда, а то уже залез в  GetDependentElements и там их нашел...
А возможно , что стена вставлена в другую стену ? или в стену можно вставить только витраж ?

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

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: CurtainWall Host
« Ответ #27 : 16-08-2019, 12:35:13 »
Код - C# [Выбрать]
wall.CurtainGrid.GetPanelIds();

Код - C# [Выбрать]
wall.CurtainGrid.GetMulionIds();

В витраж могут быть вставлены двери (где то такое видел, если не ошибаюсь), GetPanelIds мне кажется их не определит ?

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: CurtainWall Host
« Ответ #28 : 16-08-2019, 12:39:14 »
В витраж могут быть вставлены двери , GetPanelIds мне кажется их не определит ?

чойто?

А возможно , что стена вставлена в другую стену ? или в стену можно вставить только витраж ?

Бывают составные стены ещё.

Вроде как вырезание геометрии работает только между обычной и витражной стенкой

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: CurtainWall Host
« Ответ #29 : 16-08-2019, 12:44:38 »
Кстати, в витражные стены двери / окна напрямую не вставляются.  Но есть возможность панели витража задать типоразмер стены, тогда можно вставлять уже в эту панель окно/дверь. Либо моделировать окна/двери теми же панелями витража

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

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: CurtainWall Host
« Ответ #30 : 16-08-2019, 12:51:57 »
Но есть возможность панели витража задать типоразмер стены, тогда можно вставлять уже в эту панель окно/дверь.
Воот , как тогда эту дверь получить?

https://cloud.mail.ru/public/UDB6/5LTp61P2R

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: CurtainWall Host
« Ответ #31 : 16-08-2019, 12:57:34 »
Вот она


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

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: CurtainWall Host
« Ответ #32 : 16-08-2019, 13:09:15 »
Вот она
Значит витражная дверь входит в состав панелей... Добрались таки с Вашей помощью до истины)

Жаль что нет метода , определяющего в какую стену вставлен витраж (типа CurtainWall.OwnerWall ),
так что лучшим решением пока остается :
Разверните задачу, пройдитесь по стенам в проекте, найдите вставленные в них витражи, соберите новый кортеж - (витраж, родительская стена)

а с остальным все ок

Спасибо ! :)


« Последнее редактирование: 16-08-2019, 16:47:01 от enot »

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: CurtainWall Host
« Ответ #33 : 16-08-2019, 13:12:37 »
Так эта дверь и создавалась как панель витража. Её в обычную стену и не вставишь. Ну и FindInserts находит вставленные витражные стены, так что претензий особых не должно быть