Dynamo与Revit API之间的转换——Dynamo Python系列教程
文章来源:BIM的乐趣
今天来聊聊Dynamo与Revit之间图元转换的基础知识,这些需要你牢牢记住哦,不然在Pythonscript中写代码,经常会报错的~
通常来讲,所有来自Dynamo节点的几何图形都不是Revit的几何对象,所以它们需要与RevitAPI一起使用进行转换。
Dynamo的几何图形单位是米,而Revit使用的英尺,这里要引入转换工具,用下面的方法:
importclr
clr.AddReference("RevitNodes")
importRevit
#引入ToProtoType,ToRevitType几何图形转换方法
clr.ImportExtensions(Revit.GeometryConversion)
接下来分别列下需要转换的图元:
一、从Revit到Dynamo
1、解封:
unWrappedElement=Unwrapelement(wrappedElement)#我门常称之为"解封"
unWrappedGeometry=wrappedGeometry.ToRevitType()
Unwrapelement()方法不需要单独导入,可以直接使用,该方法完成了Dynamo类型到RevitAPI类型的转换。
2、几何图元转换
#Elements
Element.ToDSType(bool);#如果是Revit生成的图元,则为真
#Geometry
XYZ.ToPoint()>Point
XYZ.ToVector()>Vector
Point.ToProtoType()>Point
List<XYZ>.ToPoints()>List<Point>
UV.ToProtoType()>UV
Curve.ToProtoType()>Curve
CurveArray.ToProtoType()>PolyCurve
PolyLine.ToProtoType()>PolyCurve
Plane.ToPlane()>Plane
Solid.ToProtoType()>Solid
Mesh.ToProtoType()>Mesh
IEnumerable<Mesh>.ToProtoType()>Mesh[]
Face.ToProtoType()>IEnumerable<Surface>
Transform.ToCoordinateSystem()>CoordinateSystem
BoundingBoxXYZ.ToProtoType()>BoundingBox
二、从Dynamo到Revit
1、封装
wrappedElement=unWrappedElement.ToDSType(isRevitOwned)#我们常称之为"封装"
wrappedGeometry=unWrappedGeometry.ToProtoType()
该方法在调用之前需要导入,位于“RevitNodes”程序集中,且该方法为扩展方法,导入方法有所不同,需特别注意.
2、几何图元转换
#Elements
Element.InternalElement
#Geometry
Point.ToRevitType()>XYZ
Vector.ToRevitType()>XYZ
Plane.ToPlane()>Plane
List<Point>.ToXyzs()>List<XYZ>
Curve.ToRevitType()>Curve
PolyCurve.ToRevitType()>CurveLoop
Surface.ToRevitType()>IList<GeometryObject>
Solid.ToRevitType()>IList<GeometryObject>
Mesh.ToRevitType()>IList<GeometryObject>
CoordinateSystem.ToTransform()>Transform
CoordinateSystem.ToRevitBoundingBox()>BoundingBoxXYZ
BoundingBox.ToRevitType()>BoundingBoxXYZ
接下来简单举个例子,把Dynamo里的点转换为Revit的点:
这里就用到我最上面写的转换方法。
对于点,还可以用ToXyz()的方法转换成Revit元素。
同样的,我们还可以将Revit的元素转换为Dyanmo中的元素:
好了,今天得教程分享就到这里,要多加练习哦~~
Revit中文网作为国内知名BIM软件培训交流平台,几十万Revit软件爱好者和你一起学习Revit,不仅仅为广大用户提供相关BIM软件下载与相关行业资讯,同时也有部分网络培训与在线培训,欢迎广大用户咨询。
网校包含各类BIM课程320余套,各类学习资源270余种,是目前国内BIM类网校中课程最有深度、涵盖性最广、资源最为齐全的网校。网校课程包含Revit、Dynamo、Lumion、Navisworks、Civil 3D等几十种BIM相关软件的教学课程,专业涵盖土建、机电、装饰、市政、后期、开发等多个领域。
需要更多BIM考试教程或BIM视频教程,可以咨询客服获得更多免费Revit教学视频。
BIM技术是未来的趋势,学习、了解掌握更多BIM前言技术是大势所趋,欢迎更多BIMer加入BIM中文网大家庭(http://www.wanbim.com),一起共同探讨学习BIM技术,了解BIM应用!
相关培训