Размещение предметов вдоль стен

Автор Тема: Размещение предметов вдоль стен  (Прочитано 2470 раз)

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

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

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

  • ADN OPEN
  • Сообщений: 5
  • Карма: 0
Добрый день! Передо мной стоит такая задача:
Имеется соединенные между собой 4 стены. Мне будет необходимо разместить вдоль этих стен предметы(пока абстрактные кубы) как снаружи так и внутри по длине и высоте.
Я думал, смогу это сделать, получая координаты углов стен и затем,  определив границу соприкосновения стены и кубов, расставить их. Но пока у меня только получилось определить координаты пересечения общих точек векторов, образующих стены.
Подскажите, пожалуйста как лучше реализовать данную задачу с помощью Revit Api?

Оффлайн Agens

  • ADN OPEN
  • ***
  • Сообщений: 223
  • Карма: 0
Re: Размещение предметов вдоль стен
« Ответ #1 : 23-02-2020, 12:34:47 »
ой не знаю, могу ли я давать советы :) но...
получаете все Face комнаты, потом получаем SpatialElementBoundarySubface стен, а из них уже Сurve они же Line (границы помещения, но только внутренние).
Если получится получить наружные, напишите пример кода, если не сложно...
VS2019, VBA 7.1, VB.NET, C#, ACAD2019, Revit 2020

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

  • ADN OPEN
  • Сообщений: 5
  • Карма: 0
Re: Размещение предметов вдоль стен
« Ответ #2 : 23-02-2020, 12:50:51 »
А как достучаться до face, через wall.getGeometry?

Оффлайн Agens

  • ADN OPEN
  • ***
  • Сообщений: 223
  • Карма: 0
Re: Размещение предметов вдоль стен
« Ответ #3 : 23-02-2020, 12:55:25 »
в этой тебе пример кода https://adn-cis.org/forum/index.php?topic=7513.msg42525#msg42525 (сообщение 18)
VS2019, VBA 7.1, VB.NET, C#, ACAD2019, Revit 2020

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

  • ADN OPEN
  • Сообщений: 5
  • Карма: 0
Re: Размещение предметов вдоль стен
« Ответ #4 : 23-02-2020, 13:17:37 »
У меня получается пока просто 4 стены, значит мне надо превратить их в комнату?

Оффлайн Agens

  • ADN OPEN
  • ***
  • Сообщений: 223
  • Карма: 0
Re: Размещение предметов вдоль стен
« Ответ #5 : 23-02-2020, 13:35:49 »
ну, вообще-то нет архитектуры без комнат )
хотя написано
Цитировать
Represents an enclosed area or volume in the Revit model. This is the parent class for rooms, spaces and areas.
.
Про Area Class ничего не знаю. возможно. это ваш вариант...
VS2019, VBA 7.1, VB.NET, C#, ACAD2019, Revit 2020

Отмечено как Решение Mystogan 23-02-2020, 13:52:52

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

  • ADN OPEN
  • Сообщений: 5
  • Карма: 0
Re: Размещение предметов вдоль стен
« Ответ #6 : 23-02-2020, 13:52:40 »
Если интересно, то можно получить координаты и внешнего и внутреннего Face  отдельной стенки через следующий код:
 IList<Reference> sideFaces = HostObjectUtils.GetSideFaces(wall, ShellLayerType.Exterior);
Face face = uiDoc.Document.GetElement(sideFaces[0]).GetGeometryObjectFromReference(sideFaces[0]) as Face;

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

  • ADN OPEN
  • Сообщений: 5
  • Карма: 0
Re: Размещение предметов вдоль стен
« Ответ #7 : 23-02-2020, 13:53:25 »
Agens,
спасибо за отклик.

Оффлайн Agens

  • ADN OPEN
  • ***
  • Сообщений: 223
  • Карма: 0
Re: Размещение предметов вдоль стен
« Ответ #8 : 23-02-2020, 15:46:45 »
в понедельник придут Гуру, помогут )
VS2019, VBA 7.1, VB.NET, C#, ACAD2019, Revit 2020

Оффлайн Agens

  • ADN OPEN
  • ***
  • Сообщений: 223
  • Карма: 0
Re: Размещение предметов вдоль стен
« Ответ #9 : 23-02-2020, 15:47:42 »
Если интересно, то можно получить координаты и внешнего и внутреннего Face  отдельной стенки через следующий код:
 IList<Reference> sideFaces = HostObjectUtils.GetSideFaces(wall, ShellLayerType.Exterior);
Face face = uiDoc.Document.GetElement(sideFaces[0]).GetGeometryObjectFromReference(sideFaces[0]) as Face;
стенка может нескольким комнатам принадлежать, лично мне это не подходит...
VS2019, VBA 7.1, VB.NET, C#, ACAD2019, Revit 2020