Dynamo For Revit: CurveByPoints

前言

本文介绍如何通过参考点创建线,注意,这个只有在族文件中才能够创建。
在这里插入图片描述

内容

节点接口

从这个节点的接口出发,知道它需要输入的参数是:

  1. 一系列的参考点
  2. 输出的是否是参考线
    在这里插入图片描述

生成参照点

如何去创建参考点呢?

  1. 直接通过坐标或者通过坐标得到点来生成参考点的坐标点: ReferencePoint.ByCoordinatesReferencePoint.ByPointReferencePoint.ByPointVectorDistance
  2. 通过线上的点生成坐标点:ReferencePoint.ByLengthOnCurveReferenceReferencePoint.ByParameterOnCurveReference
  3. 通过面上的点生成坐标点:ReferencePoint.ByParametersOnFaceReference

在这里插入图片描述

生成线

通过选中 Edge 和 Face 以及自己输入坐标来创建 ReferencePoint,再通过 CurveByPoints.ByReferencePoints 来创建参照线。
在这里插入图片描述
Dynamo 中效果图:
在这里插入图片描述
Revit 中的效果图(隐藏了其它元素):
在这里插入图片描述

参照点的属性

ReferencePoint.XReferencePoint.YReferencePoint.Z 可以得到参照点的三个坐标值。
在这里插入图片描述
ReferencePoint.XYPlane、ReferencePoint.XZPlane 和 ReferencePoint.YZPlane 生成的三个平面并不是一个坐标系的三个平面,有两个面是平行的,不知道是bug还是就是这样设计的。
在这里插入图片描述
从代码上看,应该是一个坐标系,为何最终结果不是,难道不是欧拉坐标系?!需要后续研究一下!
代码:GitHub\DynamoRevit\src\Libraries\RevitNodes\Elements\ReferencePoint.cs

        /// <summary>
        /// Gets XY plane of the specified ReferencePoint
        /// </summary>
        public Plane XYPlane
        {
            get
            {
                var cs = InternalReferencePoint.GetCoordinateSystem();
                var xy = Autodesk.Revit.DB.Plane.CreateByNormalAndOrigin(cs.BasisX, cs.BasisY);
                return xy.ToPlane();
            }
        }
        /// <summary>
        /// Gets YZ plane of the specified ReferencePoint
        /// </summary>
        public Plane YZPlane
        {
            get
            {
                var cs = InternalReferencePoint.GetCoordinateSystem();
                var yz = Autodesk.Revit.DB.Plane.CreateByNormalAndOrigin(cs.BasisY, cs.BasisZ);
                return yz.ToPlane();
            }
        }
        /// <summary>
        /// Gets XZ plane of the specified ReferencePoint
        /// </summary>
        public Plane XZPlane
        {
            get
            {
                var cs = InternalReferencePoint.GetCoordinateSystem();
                var xz = Autodesk.Revit.DB.Plane.CreateByNormalAndOrigin(cs.BasisX, cs.BasisZ);
                return xz.ToPlane();
            }
        }

        #endregion
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

极客BIM工作室

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

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

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

打赏作者

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

抵扣说明:

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

余额充值