Найти тему

Как может помочь высшая математика в BIM ?!?


Кратенько напишу как я мыслил, когда писал свой первый плагин. Задача была следующая:

- Упростить моделирование трубопроводных элементов на 3D видах.

- Ускорить соединение элементов.

- Соединять несоединяющиеся элементы :)

Все мы знаем как сложно добиться от Revit-а понимания какие коннектора нужно присоединить, а ещё в добавок надо всё идеально выровнять!

Логика у меня была следующая:

- Нужно взять координаты коннектора первого семейства и второго. Это два объекта XYZ.

- Далее просто переместить их в одну точку. Метод MoveElement который принимает вектор перемещения. Чтобы найти вектор по двум точкам нужно координаты этих точек просто отнять друг от друга.

- Дальше нам нужно найти плоскость в которой расположены 2 трубопроводных элемента. Метод "CreateByThreePoints". Из названия понятно, что метод строит плоскость по трём точкам. Возьмём точку "A","B","C", где точка "А" это вектор "Z" у коннектора первого элемента + единичный вектор "Z", точка "B" это вектор "Z" у коннектора второго элемента + единичный вектор "Z" и точка "C" это общая точка соприкосновения двух элементов.

- Теперь нам нужно узнать нормаль к этой плоскости, это свойство Normal у экземпляра класса Plane.

- Далее перемещаем нормаль в точку соприкосновения элементов и вуаля! мы получили ось вращения.

- Просто находим угол между элементами и вращаем на этот угол вокруг ранее найденной оси.

Если кому интересно могу поскидывать фрагменты кода.
Как может помочь высшая математика в BIM ?!? Кратенько напишу как я мыслил, когда писал свой первый плагин. Задача была следующая: - Упростить моделирование трубопроводных элементов на 3D видах.
1 минута
118 читали