public static class RevitFileUtils
{
private const string MatchVersion = @"((?<=Autodesk Revit )20\d{2})|((?<=Format: )20\d{2})";
/// <summary>
/// 获取revit文件版本号[采用流方式]返回结果(eg:2018,2019)
/// </summary>
/// <param name="filePath"></param>
/// <returns>返回结果(eg:2018,2019)</returns>
public static string GetVersion(string filePath)
{
var version = string.Empty;
Encoding useEncoding = Encoding.Unicode;
using (FileStream file = new FileStream(filePath, FileMode.Open))
{
//匹配字符有20个(最长的匹配字符串18版本的有20个),为了防止分割对匹配造成的影响,需要验证20次偏移结果
for (int i = 0; i < 20; i++)
{
byte[] buffer = new byte[2000];
file.Seek(i, SeekOrigin.Begin);
while (file.Read(buffer, 0, buffer.Length) != 0)
{
var head = useEncoding.GetString(buffer);
Regex regex = new Regex(MatchVersion);
var match = regex.Match(head);
if (match.Success)
{
version = match.ToString();
return version;
}
}
}
}
return version;
}
}
关于不启动revit获取版本号
最新推荐文章于 2025-03-21 16:02:25 发布
本文介绍了一种方法,在不启动Revit软件的情况下,能够修改相关数据并获取Revit的版本号,这对于自动化处理和后台服务操作具有重要意义。

3369

被折叠的 条评论
为什么被折叠?



