簡體   English   中英

從 Revit 外部訪問 Revit API

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM