RevitUtil.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. /*-------------------------------------------------------------------------
  2. * 功能描述:RevitUtil
  3. * 作者:xulisong
  4. * 创建时间: 2019/6/24 9:55:09
  5. * 版本号:v1.0
  6. * -------------------------------------------------------------------------*/
  7. using Autodesk.Revit.DB;
  8. using SAGA.RevitUtils.Extends;
  9. using SAGA.RevitUtils.Extends.Graphic;
  10. using System;
  11. using System.Collections.Generic;
  12. using System.Linq;
  13. using System.Text;
  14. using System.Threading.Tasks;
  15. namespace RevitToJBim.Common
  16. {
  17. public class RevitUtil
  18. {
  19. /// <summary>
  20. /// 获取FamilyInstance顶面轮廓
  21. /// </summary>
  22. /// <param name="fi"></param>
  23. /// <returns></returns>
  24. public static List<XYZ> GetTopPolygon(FamilyInstance fi)
  25. {
  26. List<XYZ> path = new List<XYZ>();
  27. var faces = fi.GetOriginalFaces(XYZ.BasisZ);
  28. var topface = faces.FirstOrDefault();
  29. //传递的path中没有重复点
  30. if (topface != null)
  31. {
  32. var curves = topface.GetCurves();
  33. for (int i = 0; i < curves.Count; i++)
  34. {
  35. var current = curves[i];
  36. var points = current.GetPoints();
  37. points.RemoveAt(points.Count - 1);
  38. path.AddRange(points);
  39. }
  40. }
  41. return path;
  42. }
  43. }
  44. }