全部產品
Search
文件中心

PolarDB:ST_ImportIFC

更新時間:Jul 06, 2024

將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等Object Storage Service服務中,使用此參數。更多資訊,請參見Object Storage Service服務路徑

content

如果通過二進位方式提供IFC檔案,使用此參數,與參數url任選其一即可。

options

匯入選項:

  • schema:目標表schema,字串類型,預設為public。

  • project:專案名,字串類型。將填充在每一條記錄的project_name欄位。

描述

將IFC檔案匯入到資料庫中。

說明
  • 支援將儲存在OSS等Object Storage Service服務中的IFC檔案匯入資料庫。

  • 支援將IFC檔案的位元據讀取到記憶體,然後匯入資料庫。

匯入限制說明:

  • 將忽略IfcOpeningElement類型資料。

  • 將忽略最終不掛載到IfcProject節點的孤兒節點。

  • 暫時忽略IfcElementType類型的資料。

匯入成功後,將在資料庫中產生三張表:

IFC對象表

表名格式:[prefix]_ifc_elem

作用:儲存所有實際的IFC對象及其相關屬性。

表結構:

欄位

類型

說明

id

serial

唯一ID。

family

text

所在族。

一般來自IfcBuildingElementIfcSpatialStructureElement

project_uuid

text

專案ID。

IFC檔案根節點組件的UUID。

project_name

text

專案名稱。

若使用者不指定project_name,則該列值為空白。

常用於儲存多個子專案的表。

parent_uuid

text

父組件的UUID。

若組件為IfcProject類型,則其parent_uuid約定為root

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

專案名稱。

若使用者不指定project_name,則該列值為空白。

常用於儲存多個子專案的表。

geometry_id

text

組件的幾何ID。

由組件的幾何特性和材質特徵產生。

geom_element

sfmesh

組件的幾何資訊。

IFC材質表

表名格式:[prefix]_ifc_material_elem

作用:儲存所有關聯的材質對象。

表結構:

欄位

類型

說明

id

serial

唯一ID。

project_uuid

text

專案ID。

與IFC對象表中一致。

project_name

text

專案名稱。

若使用者不指定project_name,則該列值為空白。

常用於儲存多個子專案的表。

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