能夠直接從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的模型,屬性對話框以下:
能夠用數據庫完成不少有意思的事。