gpt4 book ai didi

c# - 如何使用 Revit API 获取 Revit 文件版本?

转载 作者:太空宇宙 更新时间:2023-11-03 21:51:11 24 4
gpt4 key购买 nike

在 Revit API 中,我知道我可以获得当前正在运行的 Revit 实例的版本(ControlledApplication.VersionBuild,ControlledApplication.VersionName,ControlledApplication .版本号)。但是,我想在打开 Revit 文件之前获取它本身的版本。这样我就可以停止自动升级对话框,该对话框会在用户在较新版本的 Revit 中打开较旧的 Revit 文件时显示。我正在使用 Revit 2013 并期待 2011、2012 和 2013 的文件。

Similar Autodesk Discussion Group Question
Building Coder

最佳答案

正如您所说,Revit 文件格式是一种结构化存储文档,您需要的信息存储在 BasicFileInfo 流中。

Here是演示如何提取 BasicFileInfo 数据的完整控制台应用程序

不幸的是我不知道 BasicFileInfoStream 的格式。但是,如果您将其作为字符串读取,您可以获得创建文件的版本。

只读取 BasicFileInfo 比读取整个文件要好得多。想象一下,如果 Revit 项目超过 500 MB 或更多。当你打电话时

string fileContents = streamReader.ReadToEnd();

您将整个文件写入内存。

此外,大文件的正则表达式运行缓慢。

我认为你应该使用

var rawString = System.Text.Encoding.Unicode.GetString(rawData);

在我的示例中,在 rawString 中使用 Regex 而不是整个文件。

希望对您有所帮助。

更新:我完全忘了。在 Revit 2013 中,您可以使用 BasicFileInfo 类的 SavedInCurrentVersion 属性来确定文件是否保存在当前 Revit 版本中。如果您想获取保存文件的版本(如您的问题标题中所示),您可以使用同一类的 SavedInVersion 属性。您可以使用 BasicFileInfo.Extract 方法获取 BasicFileInfo

关于c# - 如何使用 Revit API 获取 Revit 文件版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14481652/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com