Сообщество программистов Autodesk в СНГ
ADN Club => Revit API => Тема начата: 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)
-
К сожалению, или к счастью ;D, я далек от динамо. Тем не менее, по пунктам
1. вариантов, видимо, три. Первый - получение геометрии из элементов модели, второй - запрос у пользователя их выбора (uidoc.Selection.PickObjects), третий - как-то описывать и генерировать данные программно.
2, 4. опять три варианта. BRepBuilder, TessellatedShapeBuilder, GeometryCreationUtilities+BooleanOperationsUtils
3. SolidUtils.CreateTransformed, например.
-
в целом с пунктом 1 все более менее ясно.
по пункту 2. я так понимаю что аналога в api нет.
по пункту 3. оффсет должен быть на как картинке слева (справа как быть не должно), каждая грань смещается на определенное расстояние и увеличивается или уменьшается, а SolidUtils.CreateTransformed принимает в качестве параметра только солид и трансформ и получу.
по пункту 4. TessellatedShapeBuilder получает список face, а вот как получить нижнюю часть фэйсов смещенную на дельту, имея верхнюю (со смещением по правилам пункта 3)?
(https://i.postimg.cc/gLsQ08VK/image.png) (https://postimg.cc/gLsQ08VK)
По сути общая задача -автоматическое построение подстилающих слоев фундаментной плиты, таких как бетонная подготовка, ГИ, стяжка и т.п, может есть какой то другой способ сделать это.