我使用过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))
但这似乎没有暴露任何有用的东西。
答案 0 :(得分:4)
您无法从其他进程调用Revit API。 API旨在用于"进程中",因此您必须创建一个将由Revit加载到其自己的进程中的DLL。
答案 1 :(得分:1)
如前所述,无法从另一个进程调用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();