返回 BIM 与 IFC 博客
大多数数字孪生演示都从一个平台开始:一个云账号、一份连接器许可,再加一台供传感器通信的服务器。这个演示从一个链接开始。打开它,加泰罗尼亚广场的八个 IFC 模型就立在巴塞罗那的真实地形上,城市的公开数据源同时为它们着色:一个共享单车站点的停车桩、一个电动汽车充电桩的车位、周边街道的交通,以及空气质量。
中间没有任何环节属于我们。访问者的浏览器从本站获取模型,直接从各个提供方获取数据。这给孪生能做的事情带来了一些限制,下文会逐一说明。但这也意味着任何人都可以打开它、嵌入它,或者复制它的场景文件,搭建自己的孪生。
要点
- 只要数据提供方允许浏览器请求(CORS),仅靠开放数据就能构建一个有用的数字孪生。巴塞罗那的 Bicing、Endolla、交通和空气质量数据源都允许。
- 数据与模型之间的纽带是绑定:一个数据源、一个设备 ID、一个按类和名称查找 IFC 构件的查询,以及按“首条命中生效”执行的着色规则。
- 让人信服的关键在于对齐。这里的 IFC 构件与其所表示的 OpenStreetMap 要素相差 0.1–0.4 m,数据点则精确落在底图绘制它们的位置上。
- 整个演示就是一个 JSON 场景文件。复制它,换掉模型和绑定,你就有了自己的孪生。
试一试:实时的加泰罗尼亚广场
在 ICGC 地形上打开八个模型和四个实时图层。Bicing 停车桩和 Endolla 车位的颜色取自数据源,实时数值悬浮在它们上方。

打开交互式 IFC 查看器
场景里有什么
八个经过地理配准的 IFC 4.3 模型,分布在广场周围和格拉西亚大道南端,立在加泰罗尼亚制图研究所的 5 m 地形上,周围是 OpenStreetMap 生成的城市。
| 模型 | 内容 |
|---|
| 出行枢纽 | Bicing 65 号站点及其 21 个停车桩、一座公交候车亭、带电梯的地铁出入口,以及街道设施 |
| 双子喷泉(Fonts Bessones) | 广场上的两座双子喷泉,包括其水力系统和照明系统 |
| Macià 纪念碑 | Francesc Macià 纪念碑,作为文化遗产资产建模 |
| Pelai 入口 | 加泰罗尼亚站的 Pelai 入口 |
| Canaletes | 兰布拉大道的起点和 Canaletes 喷泉 |
| Gran Via 喷泉 | 位于格拉西亚大道与格兰大道(Gran Via)交汇处的纪念性喷泉 |
| 长椅路灯 | 格拉西亚大道上由 Pere Falqués 设计的长椅路灯 |
| Endolla 充电桩 | 一个路边电动汽车充电点:充电桩、充电接口和两个车位 |
这些模型是根据公开资料制作的示意性重建。文件中的资产数据均标注为演示值。
Bicing 65 号站点:停车桩每分钟同步一次站点状态,悬浮的数字是此刻可借的单车数。
四个开放数据源,中间没有服务器
| 数据源 | 发布方 | 格式 | 场景中的刷新频率 |
|---|
| Bicing 站点 | Bicing,巴塞罗那市政府 | GBFS 3.0 | 地图图层每 30 秒;停车桩颜色每 60 秒 |
| 电动汽车充电 | Endolla / B:SM,Open Data BCN | GELFS JSON | 充电桩状态每 5 分钟 |
| 街道交通 | 巴塞罗那市政府,Open Data BCN | 状态表,关联到路段 | 每 5 分钟 |
| 空气质量 | 巴塞罗那公共卫生局 | 逐小时 CSV,关联到监测站 | 每小时,发布延迟 45 分钟至 3 小时 |
每个请求都从访问者的浏览器直接发往发布方。这之所以可行,完全是因为这些数据源发送了允许这样做的 CORS 头;每个数据源在加入场景之前都逐一检查过。格式都是开放标准或普通文件:共享单车用 GBFS[gbfs],Endolla 是一个 JSON 文件,其余是城市开放数据门户上的 CSV 表格[opendata-bcn]。四个数据源都在浏览器中读取。
从数据源到着色的停车桩
为 65 号站点的停车桩着色需要五步,每一步都写在场景文件里:
- 设备数据源 Bicing 站点状态数据源,每 60 秒轮询一次。其中每个站点都成为一个设备,以 station_id 为键。
- 一个设备 65 号站点,位于广场与格拉西亚大道交汇的街角。
- 查找构件的查询 名称包含“ancoratge”(加泰罗尼亚语,意为停车桩)的 IfcBuildingElementProxy 构件,包括组合构件中的子构件。这样就能找到全部 21 根停车桩。
组合构件在这里很关键。停车桩是站点组合构件(IfcRelAggregates)的组成部分,只查看顶层构件的查询一根都找不到。
- 规则:首条命中生效 暂停服务:灰色。没有单车:红色,持续 15 分钟后发出警报。满桩:蓝色。两辆或更少:琥珀色。其他情况:绿色。
- 悬浮数值与过期时限 可借单车数悬浮在停车桩上方。读数一旦比数据源允许的时效更旧,停车桩就会变灰:“没有最新数据”绝不会被当成“一切正常”。
{
"sourceId": "bicing-status",
"deviceId": "65",
"query": { "classes": ["IfcBuildingElementProxy"], "nameContains": "ancoratge" },
"rules": [
{ "name": "No bikes", "filters": [{ "field": "num_vehicles_available", "op": "eq", "value": 0 }],
"effect": { "color": "#ef4444" }, "alert": { "forMin": 15 } }
]
}
点击一根停车桩,它的详情卡片会显示 65 号站点的实时状态,旁边是该构件的 IFC 数据。
Endolla 充电桩的工作方式相同:它的两个车位反映格拉西亚大道 5 号 3762 号充电点的状态。IFC 中充电桩的 ID 是示意性的,所以这个绑定按位置匹配(即模型旁边的真实充电点),而不是按真实的设备 ID 匹配。
立在正确的位置上
一个离街道漂浮几米的孪生,第一眼就会失去说服力。这里每个模型都按自身的地理配准(ETRS89 / UTM 31N 下的 IfcMapConversion)放置在地形模型上[icgc-met]。共享同一原点的模型会保持在一起。如果你自己的模型落在了错误的位置,常见原因见 IFC 坐标与地理配准。
我们测量了模型落点与其所表示的 OpenStreetMap 要素之间的距离,两者都按底图的绘制方式精确投影:
IFC 构件与其对应的 OSM 要素之间的距离
- Canaletes 喷泉立柱: 0.08m
- 双子喷泉(Fonts Bessones): 0.1m
- Macià 纪念碑: 0.3m
- Pelai 玻璃亭: 0.38m
2026-10-10 在运行中的查看器里测得。数据图层是精确的:687 个点(最远距广场 8 km)与地图绘制位置的偏差均为 0.00 mm。
在这个尺度上,有两个细节决定成败。地理配准存储的是相对于格网北的旋转,而地图是按真北绘制的。在巴塞罗那,两者相差 0.55°,对一个 100 m 长的模型来说,末端约差一米,查看器会把这个差值消除。此外,数据图层的投影方式与底图完全一致,所以即使是 4 km 外的 Bicing 站点,也依然落在它的人行道上。
它不是什么
- 不是控制系统。数据就是发布方所发布的内容,更新节奏也由他们决定:空气质量滞后 45 分钟到 3 小时,电动汽车充电文件只说明某个充电口上次状态变化的时间,而不是上次上报的时间。
- 不是城市的资产台账。模型是重建的,其运维数据是示意性的。
- 并非每个数据源都很快。Open Data BCN 可能需要 15–40 秒才响应,所以交通和充电数据可能比其他内容晚出现。
- 尚未在手机上实测。完整场景(八个模型、四个图层和 3D 城市)目前只在桌面浏览器上测试过。
搭建你自己的孪生
这个演示就是一个 JSON 文件,即一个场景,其中列出了模型、图层、设备数据源、绑定和相机。要做你自己的版本:
- 复制场景文件 从本站的 /scenes/barcelona-placa-catalunya.scene.json 开始。
- 替换模型 把模型 URL 指向你的 IFC 文件,任何发送 CORS 头的主机都可以。
- 让绑定指向你的构件 使用 IFC 类加名称的一部分,或一组 GlobalId。
- 托管并打开 任何静态托管都可以。用 ?scene= 加上文件的 URL 打开查看器;也可以不托管:“分享 → 数字孪生场景”会把整个场景打包进链接本身。
<iframe
src="https://www.ifcvieweronline.eu/?scene=/scenes/barcelona-placa-catalunya.scene.json&embed=1"
width="100%" height="600" style="border:0;border-radius:12px"
loading="lazy" allow="fullscreen"
title="Plaça de Catalunya — open-data digital twin">
</iframe>
同样的嵌入方式也适用于项目网站、内网页面或公共数据环境(CDE)面板。完整参数见如何嵌入 IFC 查看器。用其他数据实现的同类做法,见通过 MQTT 在 IFC 公交总站上显示实时公交和基于 ODPT 数据的东京车站孪生。
参考文献
- 通用共享单车数据规范(GBFS) — MobilityData. Bicing 发布站点及其实时状态所用的格式。
- Open Data BCN — Ajuntament de Barcelona. 交通、Endolla 充电点和空气质量数据,CC BY 4.0。
- 高程:数字地形模型 — Institut Cartogràfic i Geològic de Catalunya. 模型所依托的 5 m 地形模型。
加泰罗尼亚广场实时数字孪生:在浏览器中用开放数据构建