This website is organized into sections by tabs at the top of each page.
- Please read the Getting Started page to install prerequisites for developers and for suggestions for background reading.
- The BIS tab explains the Base Infrastructure Schemas. Understanding BIS is essential to making sense of the iModel.js apis. Depending on your familiarity with database design, this is often the best starting point for understanding iModels and iModel.js.
- The Learning tab (this page) introduces the building blocks of iModel.js and provides step-by-step instructions for creating applications.
- The API Reference tab explains the API in more detail with package/class/function level documentation.
- Agents and Services that process iModels and respond to events from iModelHub
- Web Apps that run in web browsers and communicate with backends
- Desktop Apps that run on personal computers
- Mobile Apps that run on tablets and phones
It is important to understand that iModel.js applications do not run on iModelHub. Instead, they can run anywhere else. iModel.js applications always work on a copy of an iModel in a briefcase, obtained from iModelHub, and process it locally, making them infinitely scalable.
iModel.js applications can be:
- hosted on any cloud service
- deployed using any cloud deployment model
- packaged with any container tool (e.g. Docker)
- managed with any orchestration system (e.g. Kubernetes)
- installed on desktops and mobile devices
- App frontend development
- App backend development
- Classes packages by both frontends and backends
- Change Summaries
- Remote Procedure Call (RPC) Interfaces
Step by step instructions to:
- Write a Web service
- Write a Web agent
- Write an interactive app
- Write a bridge
The iModel.js library is divided into these npm packages in the
|bentleyjs-core||General classes and utilities that are not specific to iModel.js.|
|geometry-core||Operations on 2d and 3d geometry.|
|imodeljs-backend||Usually runs on a server or desktop via Node.js, but also runs mobile devices. The backend code exposes operations to the frontend via an RpcInterface.|
|imodeljs-frontend||Runs in a web browser. The frontend utilizes the HTML document paradigm. It includes everything you need to query, display 2d and 3d views, and create Tools that modify iModels.|
|imodeljs-common||Classes that are shared between the frontend and backend.|
|imodeljs-native||Performs low-level I/O to an iModel. Runs only on backends, and
|imodeljs-markup||Provides tools for creating SVG-based markup of an iModel.js Viewport.|
|imodeljs-quantity||Provides classes for parsing, formatting and converting between quantity values.|
Last Updated: 13 May, 2019