Writing to iModels using IModelDb

An IModelDb also serves as a staging area where a backend can change the content of an iModel and then submit the changes to iModelHub.

A backend can make the following kinds of changes:

Use IModelDb.saveChanges to commit changes locally. BriefcaseDb.txns manages local transactions, it supports local undo/redo.

Pushing changes to iModelHub

Use BriefcaseDb.pushChanges to push local changes to iModelHub as a changeset, so that others can see them. After a changeset is pushed to iModelHub, it becomes part of the iModel's permanent timeline. This method automatically pulls and merges new ChangeSets from iModelHub.

Only a single application can push to iModelHub at a time. IModelDb.pushChanges automatically retries push on appropriate failures. However, it is possible that all retry attempts fail, if there are a lot of other applications pushing at the same time. In that case, push should be attempted again later.

Last Updated: 11 September, 2021