祝大家聖誕快樂~ 不知道大家有沒有注意到Dynamo Primer裡面的文章: Python 樣板,我發現跟著文章內的指引操作會發生一些小錯誤,甚至會讓Dynamo裡面本來的Python Script節點沒有反應,因此研究了一下,提供我的修改成果給大家參考,首先,我們要先找到"DynamoSettings.xml"的位置,Primer文內說這個檔案"通常"放在"(%appdata%/Dynamo/Core/{version}/)",不知道我的電腦是不是特例,我這個檔案卻是在"%appdata%\Dynamo\Dynamo Revit\2.0",如下圖顯示位置:

接著第二步,編輯DynamoSettings.xml(按右鍵選擇用記事本編輯就可以了),找到<PythonTemplateFilePath />,然後改成
<PythonTemplateFilePath></PythonTemplateFilePath>

第三步,開啟空白記事本,將要作為樣板的程式碼貼進去(可以參考Dynamo Primer),然後將檔名儲存成"PythonTemplate.py",放在跟DynamoSettings.xml同一個資料夾,接著在把PythonTemplate.py的路徑複製出來,應該會長得像這樣:C:\Users\lu\AppData\Roaming\Dynamo\Dynamo Revit\2.0\PythonTemplate.py。lu是我的使用名稱,大家也可以試看看打這樣:%appdata%\Dynamo\Dynamo Revit\2.0\PythonTemplate.py,這樣應該也可以,所以最後一步,就是修改DynamoSettings.xml,將路徑加進去,像是這樣:
<PythonTemplateFilePath> <string>%appdata%\Dynamo\Dynamo Revit\2.0\PythonTemplate.py</string> </PythonTemplateFilePath>

存檔之後就OK了,以後開啟Python Script就可以少打很多東西了~FYI~

import clr clr.AddReference('RevitAPI') from Autodesk.Revit.DB import * from Autodesk.Revit.DB.Structure import * clr.AddReference('RevitAPIUI') from Autodesk.Revit.UI import * clr.AddReference('System') from System.Collections.Generic import List clr.AddReference('RevitNodes') import Revit clr.ImportExtensions(Revit.GeometryConversion) clr.ImportExtensions(Revit.Elements) clr.AddReference('RevitServices') import RevitServices from RevitServices.Persistence import DocumentManager from RevitServices.Transactions import TransactionManager doc = DocumentManager.Instance.CurrentDBDocument uidoc=DocumentManager.Instance.CurrentUIApplication.ActiveUIDocument #Preparing input from dynamo to revit element = UnwrapElement(IN[0]) #Do some action in a Transaction TransactionManager.Instance.EnsureInTransaction(doc) TransactionManager.Instance.TransactionTaskDone() OUT = element
完成~謝謝收看。![]()
請先 登入 以發表留言。