Revit二次开发知识分享(四) 计算Face的中心点

我们经常会遇到,我们需要一个面上的中心点的时候,API并没有给出一个直接的方法,这样子我们需要自己去用几何知识去计算出一个面的中心点。不管这个面的形状是怎样子的,都可以算出一个在这个面的凸起点围起来的最大轮廓线。
先上代码后讲解,Just Do It!!!

 public static XYZ GetFaceCenter(this Face temFace)
        {
            var faceBound = temFace.GetBoundingBox();
            UV maxUV = faceBound.Max;
            UV minUV = faceBound.Min;
            UV uvPoint = (maxUV + minUV) / 2;
            XYZ centerPoint = temFace.Evaluate(uvPoint).SetZ();
            return centerPoint;
        }

讲解:
(1)先得到这个面的BoundingBox
在这里插入图片描述
在这里插入图片描述

(2)再取这个包络框的两个顶点
在这里插入图片描述

这里需要注意的是。我们取到的点是UV坐标系的,也就是这个平面的原点和U方向、V方向组成的一个面。因此,在坐标点的数值上不是直接相同的。
(3)通过Evaluate方法,取到UV点在这个面上相应的坐标点。得到XYZ坐标。
这次分享就到这里啦,关注我,学习更多二次开发的小知识,每周持续更新中。。。

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

baobao熊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值