Revit 二次开发论坛链接:多文档处理
一个实用性很强的问题,和大家分享一下我的实现方式。
首先声明实现基于Revit 2011。程序需要在一个打开的项目文档中再打开另外一个族文档,并且将对族进行读写操作。在两篇Jeremy的博客里分别找到了部分答案,组合之后最终解决了问题。
1. 在文档中打开另一个文档
需要注意的是 Autodesk.Revit.ApplicationServices.Application.OpenDocumentFile(filePath) 无法满足要求。该方法只是在内存中打开文档,并不会创建新文档对应的视图,当然就更谈不上切换到新文档视图了。可行的方法是纯C#桌面编程:System.Diagnostics.Process.Start(filePath)。该方法无论在Add-In之内还是之外都有效。
2. 在文档中创建新文档,并将用户界面切换到新文档
有些小复杂,但是思路依然可以在Jeremy博客中找到,核心操作有四步:
1) 创建新文档对象(在内存中)
Autodesk.Revit.DB.Document dbDoc = Autodesk.Revit.ApplicationServices.Application.NewFamilyDocument(templateFilePath)
2) 创建新文档的专属文档视图 UIDocument
Autodesk.Revit.UI.UIDocument uiDoc =