<noframes id="b3jjn">
<form id="b3jjn"><th id="b3jjn"><th id="b3jjn"></th></th></form>

          X
          驗證碼已過期
          點擊重新獲取
          QQ咨詢 電話咨詢
          咨詢電話:

          15359439502

          掃碼關注
          關注微信公眾號
          返回頂部

          探究Revit API反轉/鏡像/變換

          發布:admin 瀏覽:1074人 分享
          發布于:2022-10-11

          在這篇文章中,我們將研究Revit API中的Instance.GetTransform方法。

          Revit API 中的Instance.GetTransform方法 不包括反射,下圖展示了一個被鏡像的族實例以及等效的 GetTransform 值:

          下面是Python代碼:

          import sys
          
          import clr
          clr.AddReference('ProtoGeometry')
          from Autodesk.DesignScript.Geometry import *
          data= UnwrapElement(IN[0])

          output=[]
          for i in data:
              output.append(i.Location.Point)
              output.append(i.GetTransform().BasisX)
              output.append(i.GetTransform().BasisY)
              output.append(i.GetTransform().BasisZ)
              output.append("")
          OUT = output

          這在 Revit中是有意為之的。

          然而,從數學的角度來看,這是不應該的。維基百科的變換矩陣清楚地指出關于X軸反射的元件應具有不同的變換矩陣:

          我們發現 Revit 對各種鏡像和翻轉操作使用了反射和旋轉的組合:

          值得關注的是關于同一軸的水平雙翻轉控制和鏡像命令(紅色標注)之間的區別。除了導致相反的面對方向和手狀態的水平操作之外,這些操作幾乎相同。從圖形上看,它看起來是一樣的,但不是根據面對方向。

          之前已經注意到單次翻轉控制更像是旋轉而不是鏡像(它不會得到反射的幾何形狀)。我們通過變換看到它被反射,但面對方向?用手狀態也被設置為真。

          通常來說,我認為面對方向/手的狀態是族狀態的內部管理數據,即,內部幾何可以被反射,但族本身不是(除非它是通過變換)。

          你可能需要查看翻轉狀態/旋轉和變換,以明確了解情況。這些控制很久以前我相信是為門構建引入的,用來表示它們懸掛在哪一邊以及擺動的方向。當它們開始用于其他事物時,歧義就開始出現,即雙重否定(相同的最終表示,但有兩個定義)。

          原文鏈接:https://thebuildingcoder.typepad.com/blog/2021/05/flip-mirror-transform-and-transient-graphics.html


          BIM技術是未來的趨勢,學習、了解掌握更多BIM前言技術是大勢所趨,歡迎更多BIMer加入BIM中文網大家庭(http://www.waterfeaturesdirect.net),一起共同探討學習BIM技術,了解BIM應用!