Сообщество программистов Autodesk в СНГ

ADN Club => Revit API => Тема начата: Legantmar от 16-08-2017, 16:29:27

Название: Пересечение solid и точки, как ?
Отправлено: Legantmar от 16-08-2017, 16:29:27
есть элемент, получаю его геометрию, например, solid.
в скрипте делаю вспомогательные построения, например линии.
задача определить есть ли пересечение средней точки линии с solid.
понимаю, что задача не простая, так как подходящих "инструментов" в revitAPI нет.
как быть?
буду рад любым идеям..

а можно пример?
можно.
делаю автообразмеривание формообразующих элементов.
- получаю линии граней у solid
- создаю offset по заданному вектору (к примеру, 0,1,1)
- если новая линия (offset линия) попадает внутрь solid, то изменяю вектор на противоположный 0,-1,1
- по линиям (и референс точкам граней) создаю размеры
в Dynamo есть нод intersec который работает с пересечением любых геометрий, но в revitAPI это только с линиями

как вариант:
- уже после построения размера, получать его линию (или какую то геометрию) и проверять на пересечение
проблема:
- как потом задать смещение этого размера в нужную сторону ? ))
Название: Re: Пересечение solid и точки, как ?
Отправлено: Александр Ривилис от 16-08-2017, 20:36:04
в Dynamo есть нод intersec который работает с пересечением любых геометрий, но в revitAPI это только с линиями
Dynamo - Open Source проект. Так что можешь посмотреть в нём исходники.
Название: Re: Пересечение solid и точки, как ?
Отправлено: Александр Ривилис от 16-08-2017, 20:44:01
Я хотя и не пишу для Revit, но за несколько минут нашёл пример пересечения Solid и Curve при помощи Solid.IntersectWithCurve(): https://knowledge.autodesk.com/search-result/caas/CloudHelp/cloudhelp/2015/ENU/Revit-API/files/GUID-2601C028-7E6D-462A-9234-46FFA3E2D31E-htm.html

P.S.: Точки ни с чем пересекаться не могут.
Название: Re: Пересечение solid и точки, как ?
Отправлено: Legantmar от 16-08-2017, 21:46:39
Александр, спасибо