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

ADN Club => Revit API => Тема начата: enot от 09-11-2018, 15:00:08

Название: Solid из Curve
Отправлено: enot от 09-11-2018, 15:00:08
Возможно ли выдавить Solid из Curve ?


Название: Re: Solid из Curve
Отправлено: Александр Игнатович от 09-11-2018, 15:02:08
Из кривой нельзя, из замкнутого контура можно. GeometryCreationUtilities.CreateExtrusionGeometry
Название: Re: Solid из Curve
Отправлено: enot от 09-11-2018, 15:05:42
Face или Surface создать из линии тоже невозможно?
Название: Re: Solid из Curve
Отправлено: enot от 09-11-2018, 15:12:21
Из кривой нельзя, из замкнутого контура можно
Линии в loopcurve замкнуты (форма линий образуют простой прямоугольник) и метод IsOpen дает False , но при выдавливании почему то выходит ошибка, что линии не замкнуты ... Отсюда вопрос , возможно ли создать из этих линий PolyCurve - я такого метода не нашел (т.е. объединить в одну) ?
Название: Re: Solid из Curve
Отправлено: Александр Игнатович от 09-11-2018, 15:35:50
Проверяйте, чтобы конец первой линии совпадал с началом второй, конец второй - с началом третьей и т.д., тогда проблем не будет
Название: Re: Solid из Curve
Отправлено: Александр Игнатович от 09-11-2018, 15:39:49
Пример (на Revit Python Shell):
Код - Python [Выбрать]
  1. from System.Collections.Generic import *
  2.  
  3. curves = List[Curve]()
  4.  
  5. curves.Add(Line.CreateBound(XYZ.Zero, XYZ.BasisX))
  6. curves.Add(Line.CreateBound(XYZ.BasisX, XYZ.BasisX + XYZ.BasisY))
  7. curves.Add(Line.CreateBound(XYZ.BasisX + XYZ.BasisY, XYZ.BasisY))
  8. curves.Add(Line.CreateBound(XYZ.BasisY, XYZ.Zero))
  9.  
  10. profiles = List[CurveLoop]()
  11. profiles.Add(CurveLoop.Create(curves))
  12.  
  13. solid = GeometryCreationUtilities.CreateExtrusionGeometry(profiles, XYZ.BasisZ, 1)
  14.  
  15. print solid.Volume
Название: Re: Solid из Curve
Отправлено: Agens от 14-11-2023, 10:24:25
Face или Surface создать из линии тоже невозможно?
Название: Re: Solid из Curve
Отправлено: Александр Игнатович от 14-11-2023, 11:05:27
Можно попытаться TessellatedShapeBuilder-ом создать (я не пробовал)