首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从外部访问Revit

从外部访问Revit
EN

Stack Overflow用户
提问于 2016-06-22 09:51:03
回答 2查看 1.7K关注 0票数 5

我使用过RevitPythonShell和Dynamo,但希望使用我现有的Python (Eclipse),在这里,我有用于日志记录、调试、GitHub集成等的配置。

我对事务和整个API都很满意,我花了一些时间阅读Revit和无模式连接,还有其他人提出了类似的问题。其中一些是几岁的。当前是否可以与在Revit之外执行的Python中的Revit进行交互?

例如,我试过;

代码语言:javascript
复制
import clr
clr.AddReference(r'C:\Program Files\Autodesk\Revit 2016\RevitAPI')
import Autodesk.Revit.DB as rvt_db
print(dir(rvt_db))

但这似乎并没有暴露出任何有用的东西。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-22 13:11:00

不能从另一个进程调用Revit。API设计为“进程内”,因此您必须创建一个DLL,该DLL将由Revit加载到它自己的进程中。

但是,这个DLL可以通过诸如COM这样的机制与其他进程对话。

票数 7
EN

Stack Overflow用户

发布于 2020-11-05 09:24:36

如前所述,不可能从另一个进程调用Revit。在限定的动态链接库中,您可以实现IExternalEventHandler接口,以便能够使用事件调用API。

代码语言:javascript
复制
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();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37964449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档