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

ADN Club => Revit API => Тема начата: user32 от 28-10-2020, 10:18:00

Название: Получить контур колонны в нужных координатах
Отправлено: user32 от 28-10-2020, 10:18:00
Здравствуйте, столкнулся со следующей проблемой. Мне необходимо получить геометрию колонн (их сечение) с нужными координатами. Сами профили вроде как удается находить, но они все в точке 0. Как можно получить список Curve в нужных координатах?
Вот метод, который вытаскивает профили из колонн
Код - C# [Выбрать]
  1.         private List<CurveArrayDTO> GetColumnProfile(Element element, Options opt)
  2.         {
  3.             List<CurveArrayDTO> result = new List<CurveArrayDTO>();          
  4.             if (element is FamilyInstance familyInstance)
  5.             {
  6.                 if (familyInstance.HasSweptProfile())
  7.                 {
  8.                     SweptProfile swept = familyInstance.GetSweptProfile();
  9.                     var profile = swept.GetSweptProfile();
  10.                     CurveArray profileCurves = profile.Curves;
  11.                     var curveEnum = profileCurves.Cast<Curve>();
  12.                     CurveArrayDTO curveArray = new CurveArrayDTO();
  13.                     curveArray.Curves.AddRange(curveEnum);
  14.                     result.Add(curveArray);
  15.                 }
  16.  
  17.                 else
  18.                 {
  19.                     GeometryElement geometryElement = element.get_Geometry(opt);
  20.                     foreach (GeometryObject geometryObject in geometryElement)
  21.                     {
  22.                         if (geometryObject is GeometryInstance geometryInstance)
  23.                         {
  24.                             var geoElem = geometryInstance.SymbolGeometry;
  25.                             var solid = geoElem.Where(s => s.IsElementGeometry).Cast<Solid>().First(s => s.SurfaceArea > 0);
  26.                             result = GetBoundaries(solid).OrderBy(a => a.Area).ToList();
  27.                         }
  28.  
  29.                     }
  30.  
  31.                 }
  32.  
  33.             }
  34.             return result;
  35.         }
  36.  
  37.  
Название: Re: Получить контур колонны в нужных координатах
Отправлено: Александр Игнатович от 28-10-2020, 10:33:00
Воспользоваться
Код - C# [Выбрать]
  1. FamilyInstance.GetTotalTransform()