能够直接从Navisworks 文件链接到外部数据库,并在场景中的对象与数据库表中的字段之间建立连接以引入额外特性。 数据库
1.链接mdb数据库spa
新建数据链接对象
单击“新建”按钮,新建数据链接,输入一个名称,ccc,再选择ODBC驱动类型:mdb数据库blog
------------------这里的Database1.mdb内容以下:rem
点击肯定,会在新建链接窗口中的链接栏显示链接字符串,这就是普通的ODBC数据库链接串。字符串
----------------------it
如下蓝字是帮助中的内容,颇有用:test
若是要选择的数据库具备特定名称(例如 test.mdb)而且该名称始终位于模型文件(位于生成的 NWD/NWF 而不是原始 NWD/NWF 中)旁边,请键入:DBQ=%pushpath(%poppath(%currentpath),"test.mdb"); DRIVER={Microsoft Access Driver (*.mdb)};
若是要选择的数据库与原始模型文件(例如 AutoPlant)同名,请键入:DBQ=%join(%removeext(%removepath(%sourcepath)),".mdb"); DRIVER={Microsoft Access Driver (*.mdb)}; 配置
指定要查询的数据库中的表:
在“SQL 语句”字段中,在 SELECT 以后单击,而后输入选择语句,例如:SELECT * FROM tblBoilerData WHERE "NWUniqueID" = %prop("Entity Handle", "Value"); im
此语句指示 Autodesk Navisworks 从 tblBoilerData 表中选择全部列,同时要求名为 NWUniqueID 的列与名为 Entity Handle/Value 的类别/特性对匹配。
-------------------------------
设置特性字段
双击“字段名称”字段,而后键入数据库列的名称aaa和bbb。
输入“显示名称”,将会显示在特性对话框中,它能够与字段名称不同。
配置SQL语句
SELECT * FROM tab1 WHERE aaa = %intprop("LcOaNode", "LcOaSceneBaseUserName");
tab1是数据库表名
aaa是主键的列名
LcOaNode和LcOaSceneBaseUserName是两个内部名称,要显示内部名称,能够在选项中设置:
设置完,特性对话框就会变成这样,显示内部名:
那么这句SQL的意思就是:
SELECT * FROM tab1 WHERE aaa = %intprop("LcOaNode", "LcOaSceneBaseUserName");
当选中的对象,它的某一个属性值(这里是项目LcOaNode中的名称LcOaSceneBaseUserName),等于数据库中aaa的值时,
将在特性对话框中显示刚才设置的列值(两列aaa和bbb)
最终效果
选择一个模型,因为咱们的数据库中只有两个值,咱们选择名称为/1MZ_FWD0001/B1的模型,
此时属性中会出现咱们定义的自定义特性:
2.链接EXCEL文件
与链接access数据相似。
链接数据库的那一步选择:Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)
再指定EXCEL文件的位置。
在这里,咱们的EXCEL文件内容为:设置的自定义特性字段名称为nnn,qqq,xxx
SQL语句设置时,须要注意:
1),首行内容为字段名字
2),表名为方括号括起来的以$符号结尾Sheet名如: [Sheet1$]
SELECT * from [Sheet1$] where nnn = %intprop("LcOaNode", "LcOaSceneBaseUserName");
最终效果
选择名字为/1MZ_FWD0001/B1的模型,属性对话框以下:
能够用数据库完成不少有意思的事。