將IFC文件導入到數據庫中。
語法
語法一:
boolean ST_ImportIFC(cstring prefix, cstring url, cstring options default '{}');
語法二:
boolean ST_ImportIFC(cstring prefix, bytea content, cstring options default '{}');
參數
參數名稱 | 描述 |
prefix | ifc表名前綴。 |
url | 如果IFC文件存儲在OSS等對象存儲服務中,使用此參數。更多信息,請參見對象存儲服務路徑。 |
content | 如果通過二進制方式提供IFC文件,使用此參數,與參數url任選其一即可。 |
options | 導入選項:
|
描述
將IFC文件導入到數據庫中。
支持將存儲在OSS等對象存儲服務中的IFC文件導入數據庫。
支持將IFC文件的二進制數據讀取到內存,然后導入數據庫。
導入限制說明:
將忽略IfcOpeningElement類型數據。
將忽略最終不掛載到IfcProject節點的孤兒節點。
暫時忽略IfcElementType類型的數據。
導入成功后,將在數據庫中生成三張表:
表名格式:[prefix]_ifc_elem
作用:存儲所有實際的IFC對象及其相關屬性。
表結構:
字段 | 類型 | 說明 |
id | serial | 唯一ID。 |
family | text | 所在族。 |
project_uuid | text | 項目ID。 IFC文件根節點組件的UUID。 |
project_name | text | 項目名稱。 若用戶不指定 常用于存儲多個子項目的表。 |
parent_uuid | text | 父組件的UUID。 若組件為IfcProject類型,則其parent_uuid約定為 |
uuid | text | 組件的UUID。 與IFC中該組件的UUID保持一致。 |
name | text | 組件的名稱。 每個組件繼承自IfcRoot的Name屬性。 |
attrs | jsonb | 組件的固定屬性。 可以隨用戶需要添加支持的類型及其屬性。 |
props_set | jsonb | 組件的非固定的性質集。 更多信息,請參見IfcRelDefinesByProperties。 |
element | sfmesh | 組件實體。 |
表名格式:[prefix]_ifc_geom_elem
作用:存儲所有幾何對象。
表結構:
字段 | 類型 | 說明 |
id | serial | 唯一ID。 |
project_uuid | text | 項目ID。 與IFC對象表中一致。 |
project_name | text | 項目名稱。 若用戶不指定 常用于存儲多個子項目的表。 |
geometry_id | text | 組件的幾何ID。 由組件的幾何特性和材質特征生成。 |
geom_element | sfmesh | 組件的幾何信息。 |
表名格式:[prefix]_ifc_material_elem
作用:存儲所有關聯的材質對象。
表結構:
字段 | 類型 | 說明 |
id | serial | 唯一ID。 |
project_uuid | text | 項目ID。 與IFC對象表中一致。 |
project_name | text | 項目名稱。 若用戶不指定 常用于存儲多個子項目的表。 |
material_name | text | 材質名稱。 |
material_element | material | 組件的材質信息。 |
示例
示例一:不指定項目名稱。
SELECT ST_ImportIFC('Building', 'OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/path_to_ifc');
---------
t
示例二:指定項目名稱。
SELECT ST_ImportIFC('Building', 'OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/path_to_ifc','{"project":"building_1"}');
---------
t