不同坐标系BIM模型导出参数配置

一、大数坐标系(以Civil3d模型为例)

  • 写在前面:

Civid3d软件与CAD软件类似,如果是以大数坐标系建模,原点则为(0,0),模型上取一点坐标基本为(8位X,7位Y)。可用id命令在civil3d中获取模型上某点的坐标进行验证。

额外拓展:查看模型中心点坐标位置,并确定模型坐标类型(大数坐标建模or参考建模)
使用NW打开c3d模型,确定模型坐标系。

(1)设置环境:工具切换到 查看/导航辅助工具
a. 选中 ViewCube,视图右上角会出现 Cube 控制界面;
b. 点 HUD 下的箭头,选中"位置读数器", 左下角会显示当前相机的坐标;
在这里插入图片描述
(2)操作 Cube 控制界面, 获取模型中心坐标:
a. 切换到 “上” 视图,记下左下角的 x 和 y 的坐标;这个坐标则为c3d模型中心点的坐标。
在这里插入图片描述
(3)通过上一步获取的XY坐标为:(8位X,7位Y),明确该坐标系为大数坐标值。

  • 案例

2、导出参数配置投影坐标系
大数坐标系模型导出时,遵循的规则为大数坐标系原点(0,0,0)映射到投影坐标系(0,0,0)原点,即建立两个坐标系之间坐标轴原点、XYZ轴之间的映射关系。
NW内的大数坐标系投影映射逻辑如下图所示:
在这里插入图片描述
基于上面的映射关系,咱们按照标准投影坐标系配置即可:
即配置标准的中央经线、假东(也可直接上传prj文件)
本地坐标位置映射到投影坐标系下后坐标应仍为(0,0,0)点,即原点坐标仍然为(0,0,0)。
因此按照图片内容导出即可。
在这里插入图片描述

二、参考坐标系(以RVT模型为例)

  • 写在前面:

RVT软件内无法存储大数坐标值,因此建模都是使用项目基点建模,即模型一般为参考坐标系。

  • 案例
    1、使用REVIT打开rvt模型,确定模型坐标系。
    (1)设置环境:菜单栏-注释-高程点
    在这里插入图片描述
    (2) 将鼠标挪动至模型位置,可以看到模型基点坐标为(0,0),模型角点坐标为(X四位数、Y四位数),由此推测模型为以项目基点(0,0)为原点,参考坐标系建模。模型上所有点的坐标都是基于项目基点的相对坐标。
    在这里插入图片描述
    2、配置投影坐标系
    参考坐标系转换到投影坐标系时,需要将参考坐标系下的原点坐标(0,0)映射到投影坐标系下的原点坐标(464327.2744,669549.1993 )。
    RVT中参考坐标系投影映射逻辑如下图所示:
    在这里插入图片描述
    基于上面的映射关系,咱们配置投影坐标系:中央经线、假东、假北。
    本地坐标位置映射到投影坐标系下后坐标变为(464327.2744,669549.1993,0 )点,调整方式可使用两种方式:
    (1)配置标准坐标系,设定原点坐标。
    在这里插入图片描述
    (2)手动配置坐标系偏移量。
    在这里插入图片描述
    3、按图示方式导出即可
### 将BIM模型数据导出至MySQL数据库 为了将BIM模型的数据导出并存储到MySQL数据库中,通常涉及几个主要步骤。这些过程可以从不同角度进行优化,具体取决于所使用的软件环境和技术栈。 #### 使用API接口自动化数据传输 对于像Revit这样的应用程序,官方提供了强大的API接口来帮助开发者实现这一目标[^2]。通过编写脚本或插件的方式可以直接访问内部结构化信息,并按照需求定制化的格式保存到外部关系型数据库内。例如: ```python import pyodbc def save_rooms_to_db(rooms_data): conn_str = ( r'DRIVER={ODBC Driver 17 for SQL Server};' r'SERVER=localhost;' r'DATABASE=BIMData;' r'Trusted_Connection=yes;' ) with pyodbc.connect(conn_str) as connection: cursor = connection.cursor() insert_query = """ INSERT INTO Rooms (RoomName, Area) VALUES (?, ?); """ for room in rooms_data: cursor.execute(insert_query, room['name'], room['area']) connection.commit() # 假设这里有一个名为 'get_all_rooms()' 的函数用来获取所有的房间对象列表 save_rooms_to_db(get_all_rooms()) ``` 这段Python代码片段展示了如何利用`pyodbc`库与SQL Server建立连接并将来自Revit的房间数据批量插入到指定表中。当然也可以调整参数使其适用于其他类型的数据库引擎如MySQL。 #### 自定义驱动器集成 当涉及到更复杂的场景比如ArchiCAD时,则可能需要构建专门针对特定应用设计的数据库驱动程序[^1]。这类方案允许更加深入地控制整个流程——从初始化网络通信直至最终处理返回的结果集。下面是一个简化版的概念验证伪码表示法: ```cpp class CustomMySQLDriver : public ACSDK::DatabaseDriver { public: bool Connect(const char* host, const char* user, const char* password, const char* dbname){ MYSQL *conn; mysql_init(&conn); if (!mysql_real_connect(conn, host, user, password, dbname, 0, NULL, 0)) { fprintf(stderr, "%s\n", mysql_error(conn)); mysql_close(conn); return false; } this->connection_ = conn; return true; } }; ``` 这种方法虽然初期开发成本较高,但对于长期维护以及性能调优方面有着明显优势。 #### 导入IFC标准文件 另一种通用途径就是先将以工业基础类(IFC)为代表的开放交换格式作为中介载体,再借助第三方服务完成向目标系统的迁移工作[^4]。这种方式特别适合那些不具备原生支持能力的应用场合;同时也便于跨平台间的协作交流。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值