前言
本文介绍如何通过参考点创建线,注意,这个只有在族文件中才能够创建。
内容
节点接口
从这个节点的接口出发,知道它需要输入的参数是:
- 一系列的参考点
- 输出的是否是参考线
生成参照点
如何去创建参考点呢?
- 直接通过坐标或者通过坐标得到点来生成参考点的坐标点:
ReferencePoint.ByCoordinates
、ReferencePoint.ByPoint
、ReferencePoint.ByPointVectorDistance
- 通过线上的点生成坐标点:
ReferencePoint.ByLengthOnCurveReference
、ReferencePoint.ByParameterOnCurveReference
- 通过面上的点生成坐标点:
ReferencePoint.ByParametersOnFaceReference
生成线
通过选中 Edge 和 Face 以及自己输入坐标来创建 ReferencePoint
,再通过 CurveByPoints.ByReferencePoints
来创建参照线。
Dynamo 中效果图:
Revit 中的效果图(隐藏了其它元素):
参照点的属性
ReferencePoint.X
、ReferencePoint.Y
和 ReferencePoint.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