利用ScanRefs.exe实现PW中的自动参考扫描


当我们将本地DGN文件上传到PW服务器上后,PW上的文件参考关系需要用PW Explorer中的Scan References and Link Sets...(右击文件夹可看到该菜单)来重建。其背后原因可参考如下文章:

PW如何管理设计文件的参考关系?哪些操作需要使用参考扫描工具对参考关系进行修复?

那么,如果想要自动化或批处理这个动作的话,我们可以借助于PW Explorer自带的一个外部程序ScanRefs.exe来完成。下面举例来说明操作步骤:

1、在Windows资源管理器中找到文件夹C:\Program Files (x86)\Bentley\ProjectWise\bin (ScanRefs.exe所在的文件夹)

2、在资源管理器地址栏中空白区点一下,会自动选中所有内容,键入cmd并回车能出现以该文件夹为当前目录的黑窗口。

3、在此黑窗口中键入如下命令实现对指定文件夹的参考扫描。

scanrefs.exe -d 数据源名称 -u 用户名 -p 密码 -masterfolders PW上的文件夹

实际测试结果如下:

C:\Program Files (x86)\Bentley\ProjectWise\bin>scanrefs.exe -d MyDatasource -u MyUsername -p MyPassword -masterfolders "TestWorkArea\ENFI-Correct"
 Logging in to datasource...  Success
 Collecting data...  Success
 Initializing scanner...  Done

Reference Scan Summary:
        Searched for 5 references in 4 documents
        Resolved 5 references

Link Set Scan Summary:
        Searched for 0 links in 4 documents
        Resolved 0 links

【注】:-masterfolders后跟的文件夹名称是从PW数据源的Documents下一级开始的。比如,例子中的TestWorkArea\ENFI-Correct是位于指定PW数据源下的Documents下的。

较为简单的一种情况是,当您的PW账号和Windows账号集成后,输入scanRefs命令时可以不用带上用户名和密码,仅需指定数据源名称和文件夹即可。比如:

更复杂的一种情况是,参考文件和主文件不在同一个文件夹下(有可能在上级文件夹或下级文件夹中),此时需要带上参数 -proximity r:1。其中的1表示搜索的文件夹层级。该值可以根据实际情况做出修改。r表示搜索子文件夹,不带r则只会搜索父文件夹。

有关ScanRefs.exe的详细用法,请参考如下英文文章:

(45) Using ScanRefs.exe - ProjectWise Design Integration Wiki - ProjectWise - Bentley Communities