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

ADN Club => Revit API => Тема начата: ivmax от 18-05-2020, 10:26:26

Название: Создание DirectShape из граней
Отправлено: ivmax от 18-05-2020, 10:26:26
Добрый день.
Есть есть скрипт в динамо, который  строит directshape.
1. список граней;
2. объединение граней в некий surface;
3. смещение (offset) surface, полученного на этапе 2;
4. построение solid;
5. создание directshape.

подскажите как повторить пункты 1-4 с помощью API.
(https://i.postimg.cc/nXWjtQ68/Inkedphoto-2020-05-15-12-58-28-LI.jpg) (https://postimg.cc/nXWjtQ68)
Название: Re: Создание DirectShape из граней
Отправлено: Александр Игнатович от 18-05-2020, 18:18:40
К сожалению, или к счастью ;D, я далек от динамо. Тем не менее, по пунктам

1. вариантов, видимо, три. Первый - получение геометрии из элементов модели, второй - запрос у пользователя их выбора (uidoc.Selection.PickObjects), третий - как-то описывать и генерировать данные программно.
2, 4. опять три варианта. BRepBuilder, TessellatedShapeBuilder, GeometryCreationUtilities+BooleanOperationsUtils
3. SolidUtils.CreateTransformed, например.
Название: Re: Создание DirectShape из граней
Отправлено: ivmax от 18-05-2020, 19:07:12
в целом с пунктом 1 все более менее ясно.

по пункту 2. я так понимаю что аналога в api нет.

по пункту 3. оффсет должен быть на как картинке слева (справа как быть не должно), каждая грань смещается на определенное расстояние и увеличивается или уменьшается, а SolidUtils.CreateTransformed принимает в качестве параметра только солид и трансформ и получу.

по пункту 4. TessellatedShapeBuilder получает список face, а вот как получить нижнюю часть фэйсов смещенную на дельту, имея верхнюю (со смещением по правилам пункта 3)?


(https://i.postimg.cc/gLsQ08VK/image.png) (https://postimg.cc/gLsQ08VK)


По сути общая задача -автоматическое построение подстилающих слоев фундаментной плиты, таких как бетонная подготовка, ГИ, стяжка и т.п, может есть какой то другой способ сделать это.