# ifc-loader
**Repository Path**: lzm8607/ifc-loader
## Basic Information
- **Project Name**: ifc-loader
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: cbim-ifc-loader
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-04-30
- **Last Updated**: 2024-04-30
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
TOC
|
documentation
|
demo
|
community
|
npm package

Open BIM Components 
[![NPM Package][npm]][npm-url]
[![NPM Package][npm-downloads]][npm-url]
[](https://github.com/ThatOpen/engine_components/actions/workflows/tests.yaml)
This library is a collection of BIM tools based on [Three.js](https://github.com/mrdoob/three.js/) and other libraries. It includes pre-made features to easily build browser-based 3D BIM applications, such as postproduction, dimensions, floorplan navigation, DXF export and much more.
### Usage
You need to be familiar with [Three.js API](https://github.com/mrdoob/three.js/) to be able to use this library effectively. In the following example, we will create a cube in a 3D scene that can be navigated with the mouse or touch events. You can see the full example [here](https://github.com/ThatOpen/engine_components/blob/main/src/core/SimpleScene/index.html) and the deployed app [here](https://thatopen.github.io/engine_components/src/core/SimpleScene/index.html).
```js
import * as THREE from "three";
import * as OBC from "openbim-components";
// Get the element where the scene will be displayed
const container = document.getElementById('container');
// Initialize the basic components needed to use this library
const components = new OBC.Components();
components.scene = new OBC.SimpleScene(components);
components._renderer = new OBC.SimpleRenderer(components, container);
components.camera = new OBC.SimpleCamera(components);
components.raycaster = new OBC.SimpleRaycaster(components);
components.init();
// Add some elements to the scene
components.scene.setup();
const scene = components.scene.get();
const geometry = new THREE.BoxGeometry(3, 3, 3);
const material = new THREE.MeshStandardMaterial({ color: "red" });
const cube = new THREE.Mesh(geometry, material);
cube.position.set(0, 1.5, 0);
scene.add(cube);
components.meshes.push(cube);
```
[npm]: https://img.shields.io/npm/v/openbim-components
[npm-url]: https://www.npmjs.com/package/openbim-components
[npm-downloads]: https://img.shields.io/npm/dw/openbim-components