# BIM-LW **Repository Path**: dhps/bim-lw ## Basic Information - **Project Name**: BIM-LW - **Description**: 致力于提供BIM轻量化引擎,面向协同、工程管理、物联网数据集成等应用,提供显示引擎及数据服务的可视化管理,坚决拥护国际协同联盟发布的IFC标准,不缔造私有数据格式,为BIM数据交换贡献微薄力量;致力于为工程项目提供覆盖BIM、三维GIS等多场景应用的全生命期模型数据支撑能力。 - **Primary Language**: NodeJS - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 8 - **Created**: 2024-10-15 - **Last Updated**: 2024-10-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # BIM-LW ======== [![NPM Package][npm]][npm-url] [![Build Size][build-size]][build-size-url] [![NPM Downloads][npm-downloads]][npmtrends-url] [![Dev Dependencies][dev-dependencies]][dev-dependencies-url] [![Language Grade][lgtm]][lgtm-url] #### 介绍 致力于提供BIM轻量化引擎,面向协同、工程管理、物联网数据集成等应用,提供显示引擎及数据服务的可视化管理,坚决拥护国际协同联盟发布的IFC标准,不缔造私有数据格式,为BIM数据交换贡献微薄力量;致力于为工程项目提供覆盖BIM、三维GIS等多场景应用的全生命期模型数据支撑能力。 #### 软件架构 通常BIM模型的显示控制基本上都是在专业的BIM软件之上,而浏览器作为web的载体,应用方向不在于加载大模型显示,为解决模型加载显示,需要利用C++进行BIM文件解析计算,这就需要用到浏览器的沙箱技术,因此...... #### 前台部分 ##### 编程语言 -- node typescript c++ webgl Webassembly ##### 主要用到的库 -- earcut glm libhv threejs ##### 主要用到的工具 -- Emscripten SDK webpack #### 安装教程 1. Run `yarn install` 安装所有的依赖 2. Run `npm run setup-env` 编译终端,依赖emscripten环境, 编译wsam, 需要时间有点长,耐心等待 3. yarn build-release,进行生产环境编译,编译到生产环境 `./dist`. 4. 最终代码将以生成粘合模块 ifc-viewer-plugin.js ifc-plugin.wasm模块 #### 使用说明 1. wasm使用 const IfcPlugin = require("ifc-plugin/ifc-plugin-api.js"); // initialize the API const ifcApi = new IfcPlugin.IfcAPI(); // initialize the library await ifcApi.Init(); // open a model from data let modelID = ifcApi.OpenModel(filepath, /* IFC data as a string or UInt8Array */); or let modelID = ifcApi.OpenModel(IFC data as a string or UInt8Array); // the model is now loaded! use modelID to fetch geometry // close the model, all memory is freed ifcApi.CloseModel(modelID); 2. 作为sdk提供,如下为使用方式
将自动加入模型插件使用 3. 以接口形似进行服务提供,通过API模式 (1) #### 效果 1.材质模型  2.基础能力  3.一键白模  4.用户坐标  5.属性菜单  #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)