為 Dynamo for Revit 開發
使用 GeometryPrimitiveConverter.cs
中的方法
GeometryPrimitiveConverter.cs
中的方法DynamoRevit 程式碼資源庫中的 GeometryPrimitiveConverter 類別提供各種方法,在 Revit 和 Dynamo 幾何類型之間進行轉換。在與 Revit 模型互動的 Dynamo 腳本中處理幾何圖形時,這些方法非常有用。
方法品類
GeometryPrimitiveConverter.cs
中的方法可分為四個主要品類:
Proto 轉換為 Revit 類型:將 Dynamo (Proto) 類型轉換為 Revit 類型的方法。
Revit 轉換為 Proto 類型:將 Revit 類型轉換為 Dynamo (Proto) 類型的方法。
度與弳度:在度與弳度之間轉換的方法。
X 與 UZ:處理取得互垂向量的方法。
Proto 轉換為 Revit 類型
ToRevitBoundingBox
從 Dynamo 座標系統和兩個定義點 (最小值和最大值) 建立 Revit BoundingBoxXYZ。
public static Autodesk.Revit.DB.BoundingBoxXYZ ToRevitBoundingBox( Autodesk.DesignScript.Geometry.CoordinateSystem cs, Autodesk.DesignScript.Geometry.Point minPoint, Autodesk.DesignScript.Geometry.Point maxPoint, bool convertUnits = true)
ToRevitType (BoundingBox)
將 Dynamo BoundingBox 轉換為 Revit BoundingBoxXYZ。
convertUnits 旗標 (預設為 True) 決定座標是否應從 Dynamo 的單位系統轉換為 Revit 的內部單位。
public static Autodesk.Revit.DB.BoundingBoxXYZ ToRevitType(this Autodesk.DesignScript.Geometry.BoundingBox bb, bool convertUnits = true)
ToRevitType (Point)
將 Dynamo Point 轉換為 Revit XYZ。
convertUnits 旗標 (預設為 True) 會視需要轉換座標。
public static Autodesk.Revit.DB.XYZ ToRevitType(this Autodesk.DesignScript.Geometry.Point pt, bool convertUnits = true)
ToRevitType (Vector)
將 Dynamo Vector 轉換為 Revit XYZ。
請注意,convertUnits 旗標預設為 False,因為向量表示方向和大小,這通常不需要單位轉換。轉換可能會影響向量的方向和長度。
public static Autodesk.Revit.DB.XYZ ToRevitType(this Vector vec, bool convertUnits = false)
ToXyz (Point)
將 Dynamo Point 轉換為 Revit XYZ。
public static Autodesk.Revit.DB.XYZ ToXyz(this Autodesk.DesignScript.Geometry.Point pt, bool convertUnits = true)
ToXyz (Vector)
將 Dynamo Vector 轉換為 Revit XYZ。
請注意,convertUnits 旗標預設為 False,因為向量表示方向和大小,這通常不需要單位轉換。轉換可能會影響向量的方向和長度。
public static Autodesk.Revit.DB.XYZ ToXyz(this Vector vec, bool convertUnits = false)
ToTransform
將 Dynamo CoordinateSystem 轉換為 Revit Transform。
public static Autodesk.Revit.DB.Transform ToTransform(this CoordinateSystem cs, bool convertUnits = true)
ToPlane
將 Dynamo Plane 轉換為 Revit Plane。
public static Autodesk.Revit.DB.Plane ToPlane(this Autodesk.DesignScript.Geometry.Plane plane, bool convertUnits = true)
ToXyzs (Points)
將 Dynamo Point 物件的集合轉換為 Revit XYZ 集合。
傳回 XYZ 清單。public static List<XYZ> ToXyzs(this List<Autodesk.DesignScript.Geometry.Point> list, bool convertUnits = true)
傳回 XYZ 的陣列。public static XYZ[] ToXyzs(this Autodesk.DesignScript.Geometry.Point[] list, bool convertUnits = true)
ToXyzs (Vectors)
將 Dynamo Vector 物件的陣列轉換為 Revit XYZ 向量的陣列。
public static XYZ[] ToXyzs(this Autodesk.DesignScript.Geometry.Vector[] list, bool convertUnits = false)
ToDoubleArray
將倍精度值的陣列轉換為 Revit 的 DoubleArray。
public static DoubleArray ToDoubleArray(this double[] list)
ToUvs
將每個內部陣列都表示一對值 (U 和 V) 的二維陣列 (double[][]) 轉換為 Revit UV 物件的陣列。
internal static Autodesk.Revit.DB.UV[] ToUvs(this double[][] uvArr)
ToDSUvs
將每個內部陣列都表示一對值 (U 和 V) 的二維陣列 (double[][]) 轉換為 Dynamo UV 物件的陣列。
internal static Autodesk.DesignScript.Geometry.UV[] ToDSUvs(this double[][] uvArr)
使用 Proto 轉換為 Revit 類型的範例
此範例示範使用 .ToXyz (Point) 方法將 Dynamo Point.ByCoordinates 快速簡單轉換為 Revit XYZ 的方法。
Revit 轉換為 Proto 類型
ToProtoType (BoundingBox)
將 Revit BoundingBoxXYZ 轉換為 Dynamo BoundingBox。
public static Autodesk.DesignScript.Geometry.BoundingBox ToProtoType(this Autodesk.Revit.DB.BoundingBoxXYZ xyz, bool convertUnits = true)
ToPoint (XYZ)
將 Revit XYZ 轉換為 Dynamo Point。
public static Autodesk.DesignScript.Geometry.Point ToPoint(this XYZ xyz, bool convertUnits = true)
ToProtoType (Point)
將 Revit Point 轉換為 Dynamo Point。
public static Autodesk.DesignScript.Geometry.Point ToProtoType(this Autodesk.Revit.DB.Point point, bool convertUnits = true)
ToVector (XYZ)
將 Revit XYZ 轉換為 Dynamo Vector。
public static Vector ToVector(this XYZ xyz, bool convertUnits = false)
ToProtoType (UV)
將 Revit UV 轉換為 Dynamo UV。
public static Autodesk.DesignScript.Geometry.UV ToProtoType(this Autodesk.Revit.DB.UV uv)
ToPlane (Revit Plane)
將 Revit Plane 轉換為 Dynamo Plane。
public static Autodesk.DesignScript.Geometry.Plane ToPlane(this Autodesk.Revit.DB.Plane plane, bool convertUnits = true)
ToCoordinateSystem
將 Revit Transform 轉換為 Dynamo CoordinateSystem。
public static CoordinateSystem ToCoordinateSystem(this Transform t, bool convertUnits = true)
ToPoints
將 Revit XYZ 點清單轉換為 Dynamo Point 清單。
public static List<Autodesk.DesignScript.Geometry.Point> ToPoints(this List<XYZ> list, bool convertUnits = true)
使用 Revit 轉換為 Proto 類型範例
此範例示範使用 .ToPoint (XYZ) 方法將 Revit XYZ 快速簡單轉換為 Dynamo Point 的方法。
度與弳度
ToRadians
將度轉換為弳度。
public static double ToRadians(this double degrees) { return degrees * Math.PI / 180.0; }
ToDegrees
將弳度轉換為度。
public static double ToDegrees(this double degrees) { return degrees * 180.0 / Math.PI; }
度與弳度的範例用法
此範例示範使用 .ToRadians 方法將度快速簡單轉換為弳度的方法。
X 與 UZ
GetPerpendicular (XYZ)
此方法會傳回與給定 XYZ
向量互垂的 XYZ
向量。
public static XYZ GetPerpendicular(this XYZ xyz)
GetPerpendicular (Vector)
此方法會傳回與給定 Dynamo Vector
互垂的 Dynamo Vector
。
public static Vector GetPerpendicular(this Vector vector)
X 與 UZ 的範例用法
此範例示範使用 .GetPerpendicular 方法快速簡單取得與輸入向量互垂之向量的方法。
Last updated