BimVizFAQ

FAQ9 如何设置BIM构件信息推送到用户数据库

[:zh]

设计目标

    为了方便私有云用户独立操作BIM构件信息而将构件信息推送到用户数据库中。任意操作将不影响BimViz 场景显示中的BIM 构建信息。BimViz内部使用SqlLite存储每个项目的属性数据,如果您是私有云用户,您可以打开对应目录下的SqlLite数据进行查看。

配置数据库连接位置

私有云服务器相关路径:
server\convertor\MessageServer.exe.config 文件
connectionStrings 节点下添加数据库连接信息
  <connectionStrings>
    <remove name=”LocalSqlServer” />
    <remove name=”LocalMySqlServer” />
  </connectionStrings>
具体配置请查看文档最后示例中的配置信息

数据库表设计:

1、用户不需要创建表,系统将自动创建表结构
名称 类型 备注
id int 自增长
elementid String 对应Bim构件的唯一ID
name String 属性名称
txtvalue String 属性值转化后的字符串
propSet String 属性对应的属性组
例如 SQLite 创建语句
CREATE TABLE [23f38f8f-e437-4962-8f96-f24cf3e41eed_properties] (
    id        INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
    elementId VARCHAR,
    name        VARCHAR,
    txtvalue     VARCHAR,
    propSet     VARCHAR
); 
示例结构表如下:
BimViz内部会为每个构件自动计算并加入如下属性:
参数名称 类型 说明
name String 构件名称
floor String 所在楼层或位置
domain String 构件类别,一般来自于Ifc内置类型,比如Wall,Slab等
2、表名组成
表名由项目ID、下划线、以及固定字符串properties组成
例如项目ID: 23f38f8f-e437-4962-8f96-f24cf3e41eed 
则最终的表名为   [properties_ 23f38f8fe43749628f96f24cf3e41eed] 
(2018-4-26  23f38f8f-e437-4962-8f96-f24cf3e41eed_properties])  
3、由于每一个项目的对应的BIM 属性信息较多,可能导致表的记录太多。固系统为每一个项目创建一个表用来保存对于的属性信息

数据库权限

 配置的数据库连接中的登录用户名需要有相应的权限能够进行表创建操作以及表记录操作权限

示例:

MySQL数据库:
  <connectionStrings>
         <remove name=”LocalSqlServer” />
        <remove name=”LocalMySqlServer” />
       <add name=”mysql”  connectionString=”Datasource=127.0.01;Database=TT;uid=sa;pwd=sa;”
                 providerName=”MySql.Data.MySqlClient”/>
  </connectionStrings>
 MySQL 相关配置信息:
   providerName=”MySql.Data.MySqlClient”  属性配置 MySQL 数据库标记 不可更改
   connectionString=”Datasource=127.0.01;Database=TT;uid=sa;pwd=sa;” 属性配置MySQL数据库连接地址
   name=”mysql”  属性配置当前节点的名称 
SQL Server 数据库:
<connectionStrings>
         <remove name=”LocalSqlServer” />
        <remove name=”LocalMySqlServer” />
       <add name=”sqlserver”  connectionString=”Data Source=***;Initial Catalog=props;Persist Security  Info=True;User ID=testMessager;Password=123;Connect Timeout=120;“
                 providerName=”System.Data.SqlClient”/>
  </connectionStrings>
 SQL Server 相关配置信息:
   providerName=”System.Data.SqlClient”  属性配置 SQL Server 数据库标记 不可更改
   connectionString=”Data Source=***;Initial Catalog=props;Persist Security  Info=True;User ID=testMessager;Password=123;Connect Timeout=120;” 属性配置SQL Server 数据库连接地址
   name=”sqlserver”  属性配置当前节点的名称 
SQLite数据库:
  <connectionStrings>
         <remove name=”LocalSqlServer” />
        <remove name=”LocalMySqlServer” />
        <add name=”sqlite” connectionString=”data source=test2.db” providerName=”System.Data.SQLite” />
  </connectionStrings>
SQLite相关配置信息:
   providerName=”System.Data.SQLite“  属性配置 SQLite数据库标记 不可更改
   connectionString=”data source=test2.db” 属性配置SQLite数据库连接地址
   name=”sqlite”  属性配置当前节点的名称 
Oracle数据库:
 <connectionStrings>
<remove name=”LocalSqlServer”/>
<remove name=”LocalMySqlServer”/>
<add name=”oracle” providerName=”Oracle.ManagedDataAccess.Client” connectionString=”Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=orcl.mshome.net)));User ID=SYSTEM;Password=root;”/>
</connectionStrings>
Oracle相关配置信息:
   providerName=”Oracle.ManagedDataAccess.Client  属性配置Oracle数据库标记 不可更改
   connectionString=”Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=orcl.mshome.net)));User ID=SYSTEM;Password=root; 属性配置Oracle数据库连接地址
   name=”oracle”  属性配置当前节点的名称 
同时支持多个数据库的配置:
<connectionStrings>
         <remove name=”LocalSqlServer” />
        <remove name=”LocalMySqlServer” />
        <add name=”sqlite” connectionString=”data source=test2.db” providerName=”System.Data.SQLite” />
        <add name=”mysql”  connectionString=”Datasource=127.0.01;Database=TT;uid=sa;pwd=sa;” providerName=”MySql.Data.MySqlClient”/>
     <add name=”oracle” providerName=”Oracle.ManagedDataAccess.Client” connectionString=”Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=orcl.mshome.net)));User      ID=SYSTEM;Password=root;”/>
  </connectionStrings>
BIM 属性信息将保存多个副本在配置的数据库中。

[:]

Leave A Comment

*
*