本文主要研究一種簡單高效的方法來存儲復雜的CAD符號到數據庫格式中。這在需要從CAD轉為GIS再轉換回CAD、并且要求保留之前的符號和文本(或注記)時會有幫助。以下為具體操作步驟。
最常見的兩種CAD格式,Microstation?DGN?DWG都有著各自的符號,這些符號通過很多屬性來定義。在數據庫中要創建表格字段來存儲這所有的屬性會很耗時,但是絕大部分屬性都需要保留下來,用于寫回CAD的時候需要。此外,為了表現CAD特征,FME會另外增加格式屬性,所以數據庫中的表很可能還需要更新。
還有一種選擇就是將每個需要存儲的格式屬性打包放進一個blob字段中,在寫回為CAD時可以解壓出來。
FME函數@SupplyAttributes(可通過轉換器FunctionCaller調用)具有一種功能,可以將要素的所有屬性放在一個單獨的屬性中,該屬性的名稱結構為name:value:name:value:name:value:以此類推。@SupplyAttributes也可以將這些挑選的屬性不返回到原始屬性中,然而一旦選擇,@SupplyAttributes會選擇所有的屬性,包括那些不需要的屬性字段。
自定義轉換器PackAttributes(通過FME?Store獲取)使用了一個PythonCaller來選擇要素屬性到@SupplyAttributes函數中,同時允許你通過設置過濾器,對要選擇的屬性設置前綴。這樣一來,如果想要只存儲DGN文件中所有的格式屬性、同時舍棄所有的用戶屬性和FME屬性,可以將在過濾器中將前綴設置為"igds_".同理,對于DWG文件來說,前綴設置為"aCAD_"
工作空間DGNToSqlite和SqliteToDGN演示了如何實現這一過程:
DGNToSqlite中讀取Microstation?DGN文件MajorRoads.dgn,使用PackAttributes選擇格式屬性到一個新的屬性"igds_packed"中,然后將幾何對象和選擇的屬性寫出到Sqlite?Spatial。
SqliteToDGN讀取Sqlite表,使用轉換器FunctionCaller中的函數@SupplyAttributes來重新存儲返回到要素上的屬性,然后寫出到一個新的DGN文件中。
所有的這些符號都是來自MajorRoads.DGN,包括多線和自定義線型,都重新存儲到新的文件中。
這種存儲CAD屬性的方法是可持續的。未來的FME版本中添加的任何額外格式屬性都可以自動包含進來,因為添加了格式前綴,而且不需要對任何一張表做修改。
如果你想處理本機上的CAD數據,存儲在數據庫中,那么就需要將本地的屬性提取出來分別存儲到字段中。最簡單的方法就是重新命名這些屬性。
通過以上的操作,就能快速實現在數據庫格式中保留CAD的符號和文本,簡單高效,大大節約了設計師的工作效率。安裝浩辰CAD軟件試試吧。更多CAD教程技巧,可關注浩辰CAD官網進行查看。
2023-12-28
2023-11-01
2023-10-30
2019-10-12
2019-09-04
2019-08-13
2019-08-08
2019-08-01
2019-07-30
2019-07-30
2019-07-22
2019-07-19