BoundarySegment

Автор Тема: BoundarySegment  (Прочитано 2548 раз)

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

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

  • ADN OPEN
  • ***
  • Сообщений: 223
  • Карма: 0
BoundarySegment
« : 25-11-2020, 16:03:16 »
Можно ли BoundarySegment привести к другому объекту или взять геометрию?
Иногда в примерах проскакивает:

Код - C# [Выбрать]
  1. foreach (BoundarySegment bs in bsa)
  2. {
  3. Wall revitWall = bs.Element as Wall;
  4. ...
  5.  

но у меня так не получается...

в данном примере: https://thebuildingcoder.typepad.com/blog/2013/10/determining-a-room-boundary-segment-generating-element.html

{Element e = seg.Element;}

Код - C# [Выбрать]
  1.       foreach( BoundarySegment seg in loop )
  2.       {
  3.         Element e = seg.Element;
  4.  
  5.         string s = "Element property";
  6.  
  7.         if( null == e )
  8.         {
  9.           s = "GetElementByRay";
  10.  
  11.           e = GetElementByRay( uiapp, doc, view3d,
  12.             seg.Curve );
  13.         }
  14.  

Что за магия? Или все зависит от пути, по которому мы получаем элемент?
VS2019, VBA 7.1, VB.NET, C#, ACAD2019, Revit 2020

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: BoundarySegment
« Ответ #1 : 26-11-2020, 11:20:22 »
API немного поменялось



Геометрия - метод GetCurve(), сам ограничивающий элемент ElementId / ElementId+LinkElementId

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

  • ADN OPEN
  • ***
  • Сообщений: 223
  • Карма: 0
Re: BoundarySegment
« Ответ #2 : 26-11-2020, 11:33:15 »
курву я то получу, хотелось бы трехмерный кусок стены заполучить.
все равно я не понял, как они получили стену, без LinkElementId. может API поменялось с 2013 года.
« Последнее редактирование: 27-11-2020, 08:47:06 от Agens »
VS2019, VBA 7.1, VB.NET, C#, ACAD2019, Revit 2020

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: BoundarySegment
« Ответ #3 : 26-11-2020, 11:54:28 »
API немного поменялось

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

  • ADN OPEN
  • ***
  • Сообщений: 223
  • Карма: 0
Re: BoundarySegment
« Ответ #4 : 27-11-2020, 08:47:44 »
Спасибо, если так...
Т.е раньше Wall наследовало Element, а Element BoundarySegment, тогда
можно ли простым способом получить кусок стены (3D геометрию), или нужно тупо ее построить, взяв WallType и Curve?
VS2019, VBA 7.1, VB.NET, C#, ACAD2019, Revit 2020