Доброго времени суток. Вопрос по рефакторингу кода с циклами. Ищу пересечения mep элементов со стенами.
-Собираю коллектор Труб
-Отправляю в метод
Creation все трубы
-В начале метода
Creation проецирую все стены на оси XY (зануляю Z) , таким образом, получаю "
подозреваемые стены" из линии текущей трубы и всех стен (всех стен, например 1000, а после проекции 10) методом
curve_projection_wall.Intersect(curve_projection_communication, out results);-Прохожусь циклом по всем "подозреваемым стенам" и проверяю пересечение solid стены и текущей трубы методом
SolidCurveIntersection intersection = geomSolid.IntersectWithCurve(commCurve, optS);Алгоритм работает долго.
Был другой способ:
-Беру цикл по
ВСЕМ стенам в проекте. У каждой стены беру
solid-В этом цикле, проверяю Solid стены и все трубы через фильтр
ElementIntersectsSolidFilter.
-В методе Creation все аналогично, но без проверки на проекцию.
Вопрос: Как можно сократить время алгоритма поиска пересечений стен и Mep Curve?