基于MVVM框架的XUUI HelloWorld 新手教程
2026/7/10 6:18:39
在国产BIM平台BIMBase(由广联达推出的国产BIM基础平台)上使用C++进行二次开发,是当前国内BIM软件自主可控、适配信创生态的重要方向。以下是一个系统性的指导,涵盖开发环境搭建、API使用、典型开发流程及注意事项。
BIMBase 是广联达推出的国产 BIM 基础平台,支持建筑信息模型的创建、编辑、查询、分析等能力,提供开放的 SDK(主要基于 C++),兼容国产操作系统(如统信UOS、麒麟)和 CPU 架构(如鲲鹏、飞腾、龙芯等)。
.h)、库文件(.lib/.so)、示例代码、文档| 项目 | 要求 |
|---|---|
| 操作系统 | Windows 10/11 或 国产 OS(如统信 UOS、麒麟) |
| 编译器 | Visual Studio 2019/2022(Windows) GCC 7+(Linux) |
| 架构 | x86_64 / ARM64(根据目标平台) |
| 依赖 | BIMBase Runtime(需随程序部署) |
// MyBimPlugin.cpp #include "BimBaseSDK.h" // BIMBase 提供的核心头文件 class MyBimPlugin : public IBimPlugin { public: const char* GetName() override { return "My Custom BIM Plugin"; } bool OnLoad(IBimContext* context) override { // 插件加载时调用 m_context = context; printf("Plugin loaded!\n"); return true; } void OnUnload() override { // 插件卸载 printf("Plugin unloaded.\n"); } void ExecuteCommand(const char* cmd) override { if (strcmp(cmd, "CreateWall") == 0) { CreateSimpleWall(); } } private: IBimContext* m_context = nullptr; void CreateSimpleWall() { // 获取模型管理器 auto modelMgr = m_context->GetModelManager(); auto wall = modelMgr->CreateEntity("IfcWall"); // 设置几何(简化示例) auto geom = wall->GetGeometry(); geom->SetBox(5.0, 0.2, 3.0); // 长x宽x高 // 设置属性 wall->SetProperty("Name", "My Wall 01"); wall->SetProperty("Height", 3.0); // 添加到当前模型 modelMgr->AddEntity(wall); printf("Wall created successfully.\n"); } }; // 导出插件入口(必须) extern "C" __declspec(dllexport) IBimPlugin* CreatePlugin() { return new MyBimPlugin(); }BIMBaseSDK/includeBIMBaseSDK/libBimBase.lib/MD(动态链接 CRT).dll(Windows)或.so(Linux)plugins目录IBimEntity* wall = modelMgr->CreateEntity("IfcWallStandardCase");auto solid = geomFactory->CreateExtrudedAreaSolid( profile, // 截面(如矩形、多边形) direction, // 拉伸方向 depth // 拉伸深度 ); entity->SetRepresentation(solid);entity->SetProperty("GlobalId", GenerateGUID()); entity->SetProperty("Material", "Concrete C30");auto walls = modelMgr->QueryEntities("IfcWall"); for (auto wall : walls) { double height = wall->GetPropertyAsDouble("Height"); }| 方向 | 说明 |
|---|---|
| 操作系统 | 在统信 UOS / 麒麟上编译需使用对应 GCC 工具链 |
| CPU 架构 | 若目标为 ARM64(如鲲鹏),需交叉编译或原生编译 |
| 图形渲染 | BIMBase 内部已适配国产 GPU(如景嘉微),无需额外处理 |
| 安全合规 | 避免使用非国产加密库,建议使用国密 SM2/SM4(若涉及) |
IBimLogger接口写入统一日志bool或状态码)MyApp/ ├── bin/ │ ├── MyApp.exe │ └── plugins/ │ └── MyBimPlugin.dll └── runtime/ └── BIMBase.dll + 依赖库BIMBase(由广联达推出的国产BIM基础平台)作为一款自主可控的建筑信息模型(BIM)核心引擎,面向工程建设行业全生命周期提供底层建模、数据管理与协同能力。其应用场景广泛覆盖设计、施工、运维及政府监管等多个环节,尤其在信创(信息技术应用创新)环境和国产化替代背景下具有重要战略价值。
以下是 BIMBase 的主要应用场景分类说明:
方案设计与建模
专业协同设计
国产 BIM 设计软件底座
施工深化与预制加工
4D/5D 施工模拟
施工现场管理
市政与交通工程
电力、水利、石化等工业项目
CIM(城市信息模型)平台构建
施工图审查与竣工验收
碳排放与绿色建筑分析
智慧楼宇与设施管理
既有建筑数字化改造
| 场景 | 说明 |
|---|---|
| 党政机关/央企项目 | 满足“信创”要求,替代 Autodesk Revit 等国外软件 |
| 涉密工程项目 | 数据不出境,模型存储与处理完全本地化 |
| 国产操作系统适配 | 支持统信 UOS、麒麟等 OS,适配鲲鹏、飞腾、龙芯等 CPU |
| 自主知识产权保障 | 避免“卡脖子”风险,符合国家软件供应链安全战略 |
BIMBase 不仅是一个建模引擎,更是国产 BIM 生态的“操作系统”。
它的核心价值在于:提供标准化、可扩展、安全可控的 BIM 底层能力,使各类行业应用(设计、施工、监管、运维)能在统一、自主的技术栈上构建,推动中国工程建设行业数字化转型与技术主权建设。