Сообщество программистов Autodesk в СНГ
ADN Club => Revit API => Тема начата: Mystogan от 23-02-2020, 12:19:57
-
Добрый день! Передо мной стоит такая задача:
Имеется соединенные между собой 4 стены. Мне будет необходимо разместить вдоль этих стен предметы(пока абстрактные кубы) как снаружи так и внутри по длине и высоте.
Я думал, смогу это сделать, получая координаты углов стен и затем, определив границу соприкосновения стены и кубов, расставить их. Но пока у меня только получилось определить координаты пересечения общих точек векторов, образующих стены.
Подскажите, пожалуйста как лучше реализовать данную задачу с помощью Revit Api?
-
ой не знаю, могу ли я давать советы :) но...
получаете все Face комнаты, потом получаем SpatialElementBoundarySubface стен, а из них уже Сurve они же Line (границы помещения, но только внутренние).
Если получится получить наружные, напишите пример кода, если не сложно...
-
А как достучаться до face, через wall.getGeometry?
-
в этой тебе пример кода https://adn-cis.org/forum/index.php?topic=7513.msg42525#msg42525 (сообщение 18)
-
У меня получается пока просто 4 стены, значит мне надо превратить их в комнату?
-
ну, вообще-то нет архитектуры без комнат )
хотя написано Represents an enclosed area or volume in the Revit model. This is the parent class for rooms, spaces and areas.
.
Про Area Class ничего не знаю. возможно. это ваш вариант...
-
Если интересно, то можно получить координаты и внешнего и внутреннего Face отдельной стенки через следующий код:
IList<Reference> sideFaces = HostObjectUtils.GetSideFaces(wall, ShellLayerType.Exterior);
Face face = uiDoc.Document.GetElement(sideFaces[0]).GetGeometryObjectFromReference(sideFaces[0]) as Face;
-
Agens,
спасибо за отклик.
-
в понедельник придут Гуру, помогут )
-
Если интересно, то можно получить координаты и внешнего и внутреннего Face отдельной стенки через следующий код:
IList<Reference> sideFaces = HostObjectUtils.GetSideFaces(wall, ShellLayerType.Exterior);
Face face = uiDoc.Document.GetElement(sideFaces[0]).GetGeometryObjectFromReference(sideFaces[0]) as Face;
стенка может нескольким комнатам принадлежать, лично мне это не подходит...