[英]Accessing Revit API from outside Revit
我使用過 RevitPythonShell 和 Dynamo,但想使用我現有的 Python IDE (Eclipse),在那里我有我的日志記錄、調試、GitHub 集成等配置。
我對事務和整個 API 很滿意,並且我花了一些時間閱讀有關 Revit API 和無模式連接的信息,以及其他提出類似問題的人。 其中一些已經有幾年的歷史了。 目前是否可以通過在 Revit 之外執行的 Python 與 Revit 進行交互?
例如,我已經嘗試過;
import clr
clr.AddReference(r'C:\Program Files\Autodesk\Revit 2016\RevitAPI')
import Autodesk.Revit.DB as rvt_db
print(dir(rvt_db))
但這似乎沒有暴露任何有用的東西。
不能從其他進程調用 Revit API。 API 設計為在“進程內”使用,因此您必須制作一個 DLL,該 DLL 將由 Revit 加載到其自己的進程中。
如前所述,無法從其他進程調用 Revit API。 在上述 DLL 中,您可以實現 IExternalEventHandler 接口,以便能夠使用事件調用 API。
class MyExecutionClass : IExternalEventHandler
{
public void Execute(UIApplication uiapp)
{
//your stuff
}
public string GetName()
{
return "My event executed class";
}
}
//Create event on startup
IExternalEventHandler myEventHandler = new MyExecutionClass();
ExternalEvent myExEvent = ExternalEvent.Create(myEventHandler );
//Pass event reference and raise it whenever yoo want
myExEvent.Raise();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.