[發明專利]一種基于revit圖元模型的信息提取方法有效
| 申請號: | 202010981292.7 | 申請日: | 2020-09-17 |
| 公開(公告)號: | CN112182699B | 公開(公告)日: | 2022-11-18 |
| 發明(設計)人: | 薛建英;張翼飛;劉洋;廖金鵬;韓云山;孟繁敏;鄭亮;李建軍;寇錦德;王夢潔 | 申請(專利權)人: | 中北大學;山西中北建信產業技術研究院有限公司 |
| 主分類號: | G06F30/13 | 分類號: | G06F30/13;G06T17/20;G06F30/23;G06F17/15;G06F16/35;G06F16/31 |
| 代理公司: | 太原市科瑞達專利代理有限公司 14101 | 代理人: | 趙禛 |
| 地址: | 030051 山*** | 國省代碼: | 山西;14 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 revit 模型 信息 提取 方法 | ||
1.一種基于revit圖元模型的信息提取方法,其特征在于包括以下步驟:
S1、Revit三維建模:利用建筑信息模型軟件REVIT建立三維建筑模型,三維建筑模型中包括多個單位工程;
S2、Revit二次開發平臺搭建:
Revit API實現軟件功能拓展的操作為以下兩種模式中的任一種:
A、通過外部命令的接口完成:外部命令的接口有且只有一個抽象函數Excute,當插件運行時被當作主函數調用,通過在主函數中添加所需要實現的功能代碼完成插件創建;
B、通過外部應用的接口完成:外部應用的接口有兩個抽象函數OnStartup和OnShutdown,使用外部命令時通過重載上述OnStartup和OnShutdown抽象函數,完成功能的創建;
S3、revit圖元模型信息提取:
所述revit圖元模型信息包括項目信息參數和構件參數,項目信息參數包括項目基準信息、項目材質庫參數信息,revit圖元模型信息提取執行以下操作:
S31、獲取項目參數:
第一步,獲取項目基本屬性:包括項目名稱、項目編號、項目發布日期和項目地址;
第二步:獲取項目基準圖元信息:包括標高軸網和參考平面,標高對應的類是Level,繼承自Element類,通過Level.Elevation屬性獲取標高高度,Level.Elevation屬性對應的是BuiltInParameter,繼承自LEVEL-ELEV;
第三步,獲取項目材質庫信息:
①創建收集器和過濾器,并調用收集器的WherePasses函數對元素進行過濾;
②遍歷收集器中的元素element并將其轉化為material,獲取每個材質元素對應的材質屬性信息,包括UniqueId、名稱、RGB顏色以及透明度;
③獲取材質的外觀屬性信息,利用Material的AppearanceAssetId屬性獲取Appearance AssetId;通過Appearance AssetId獲取到外觀元素;
④調用方法AppearanceAssetElement.GetRenderingAsset()獲得Asset集合;
⑤解析取得的Asset集合,對集合中的每個對象AssetProperty 進行逐個分析,將AssetProperty 中的屬性進行逐一遍歷,并分別獲取其屬性值;
⑥材質信息封裝調用:通過建立集合ListMaterialModel GetMaterial( DocumentrevitDoc)對材質屬性信息進行封裝,并通過主函數進行方法的調用,實現材質信息庫的完整提取并寫入數據庫進行統一管理;
S32、獲取構件屬性參數:
①創建過濾器分門別類過濾,并使用收集器收集各構件,從而獲取對應構件的具體信息;
②參數信息提取:構件參數信息包括實例參數和類型參數,先將遍歷到的元素element轉換為familyinstance,使用LookUp查看對應圖元實例的參數信息,然后調用get_Parameter(BuiltInParameter )方法,根據內置參數BuiltInParameter枚舉獲取族實例的參數,從 BIM 模型中提取構件所包含的參數信息,包括定位點、旋轉角度、變形矩陣以及尺寸,最后將構件的屬性參數信息進行完整提取并封裝,通過主函數調用;
③構件幾何實體信息提取:通過Element.Geometry屬性獲取實體對象的幾何數據;
A、對于系統族:geometry屬性直接包含該實例的幾何實體,可直接遍歷幾何實體中的元素獲取該實例的幾何數據;
B、對于標準族:標準族的幾何數據通過族文件定義,所以標準族的幾何數據存放在geometryinstance中,其中族類型的幾何數據通過GeometryInstance.GetSymbolGeometry方法獲取,族實例的幾何數據通過GeometryInstance.GetInstanceGeometry方法獲取;
在進行幾何數據獲取時,首先,獲取族類型的幾何元素symbolgeometry,再通過逐層遍歷族類型的幾何元素依次獲取構件的邊、面、體;
S33、獲取構件圖形信息:
①定義兩個列表集合對數據進行分類儲存,定義XYZ列表來存放三角面片的頂點坐標,定義Int列表存放三角面片的面索引;
②遍歷實體中的每一個面將其轉化為三角面片;
③獲取三角面片的頂點坐標,將其放入XYZ列表中;
④將頂點坐標與索引值對應:創建字典,通過遍歷XYZ列表將三角面片頂點坐標存放到字典中,并去除重復的頂點坐標,最后通過遍歷字典中的頂點坐標獲取對應點坐標的索引值;
S4、創建信息提取插件:
①創建類庫并添加引用:創建類庫,并根據所需要實現的功能依次添加數據庫API、界面API、應用服務API、屬性API、選擇功能API、Windows窗體控件和數據流操作的命名空間;
②創建事務:將一系列修改Revit模型的操作提交至文檔的對象;
③主代碼編制:將上述提取信息的主體功能代碼寫入;
④創建插件按鈕:首先增加一個嵌入面板,然后調用PushButton類增加一個按鈕控件,最后調用Uri類把相應圖標導入到按鈕中;
⑤注冊并運行拓展模塊:按鈕制作完畢后,寫Add-in文件作為內部啟動文件,使該按鈕可以導入到Revit軟件內部中;
⑥將上述提取構件信息插件功能程序編程生成的.dll文件的路徑和.dll的ID寫入文件中,打開Revit軟件即可獲得“提取構件信息”的插件,點擊該按鈕便可進行BIM模型構件信息提取操作。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中北大學;山西中北建信產業技術研究院有限公司,未經中北大學;山西中北建信產業技術研究院有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010981292.7/1.html,轉載請聲明來源鉆瓜專利網。
- 信息記錄介質、信息記錄方法、信息記錄設備、信息再現方法和信息再現設備
- 信息記錄裝置、信息記錄方法、信息記錄介質、信息復制裝置和信息復制方法
- 信息記錄裝置、信息再現裝置、信息記錄方法、信息再現方法、信息記錄程序、信息再現程序、以及信息記錄介質
- 信息記錄裝置、信息再現裝置、信息記錄方法、信息再現方法、信息記錄程序、信息再現程序、以及信息記錄介質
- 信息記錄設備、信息重放設備、信息記錄方法、信息重放方法、以及信息記錄介質
- 信息存儲介質、信息記錄方法、信息重放方法、信息記錄設備、以及信息重放設備
- 信息存儲介質、信息記錄方法、信息回放方法、信息記錄設備和信息回放設備
- 信息記錄介質、信息記錄方法、信息記錄裝置、信息再現方法和信息再現裝置
- 信息終端,信息終端的信息呈現方法和信息呈現程序
- 信息創建、信息發送方法及信息創建、信息發送裝置





