BriefcaseDb Class

A local copy of an iModel from iModelHub that can pull and potentially push changesets. BriefcaseDb raises a set of events to allow apps and subsystems to track its object life cycle, including BriefcaseDb.onOpen and BriefcaseDb.onOpened.


Extended by


Name Description
constructor(args: { briefcaseId: number, key: string, nativeDb: DgnDb, openMode: OpenMode }): BriefcaseDb Protected    
pullChanges(arg?: PullChangesArgs): Promise<void> Pull and apply changesets from iModelHub  
pushChanges(arg: PushChangesArgs): Promise<void> Push changes to iModelHub.  
findByKey(key: string): BriefcaseDb Static Find an open IModelDb by its key.  
open(args: OpenBriefcaseArgs): Promise<BriefcaseDb> Static Open a briefcase file and return a new BriefcaseDb to interact with it.  
tryFindByKey(key: string): undefined | BriefcaseDb Static Attempt to find an open IModelDb by key.  
upgradeSchemas(briefcase: OpenBriefcaseArgs): Promise<void> Static Upgrades the schemas in the iModel based on the current version of the software.  

Inherited methods

Name Inherited from Description
abandonChanges(): void IModelDb Abandon pending changes in this iModel.
acquireSchemaLock(): Promise<void> IModelDb Acquire the exclusive schema lock on this iModel.
addNewFont(name: string, type?: FontType): number IModelDb Add a new font name/type to the FontMap for this iModel and return its FontId.
cartographicToSpatialFromEcef(cartographic: Cartographic, result?: Point3d): Point3d IModelDb Convert a Cartographic to a point in this iModel's Spatial coordinates using its ecefLocation.
clearCaches(): void IModelDb Clear all in-memory caches held in this IModelDb.
close(): void IModelDb Close this IModel, if it is currently open.
computeProjectExtents(options?: ComputeProjectExtentsOptions): ComputedProjectExtents IModelDb Compute an appropriate project extents for this iModel based on the ranges of all spatial elements.
constructEntity<T extends Entity<T>>(props: EntityProps): T IModelDb Construct an entity (Element or Model) from an iModel.
containsClass(classFullName: string): boolean IModelDb Query if this iModel contains the definition of the specified class.
createQueryReader(ecsql: string, params?: QueryBinder, config?: QueryOptions): ECSqlReader IModelDb Allow to execute query and read results along with meta data.
deleteFileProperty(prop: FilePropertyProps): void IModelDb delete a "file property" from this iModel
deleteSettingDictionary(name: string): void IModelDb Delete a SettingDictionary, previously added with IModelDb.saveSettingDictionary, from this iModel.
ecefToSpatial(ecef: Readonly<WritableXYAndZ>, result?: Point3d): Point3d IModelDb Convert a point in ECEF coordinates to a point in this iModel's Spatial coordinates using its IModelDb.ecefLocation.
exportGraphics(exportProps: ExportGraphicsOptions): DbResult IModelDb Export meshes suitable for graphics APIs from arbitrary geometry in elements in this IModelDb.
exportPartGraphics(exportProps: ExportPartGraphicsOptions): DbResult IModelDb Exports meshes suitable for graphics APIs from a specified GeometryPart
generateElementGraphics(request: ElementGraphicsRequestProps): Promise<undefined | Uint8Array> IModelDb Generate graphics for an element or geometry stream.
getBriefcaseId(): number IModelDb Get the briefcase Id of this iModel
getEcefTransform(): Transform IModelDb Get the Transform from this iModel's Spatial coordinates to ECEF coordinates using its ecefLocation.
getGeoCoordinatesFromIModelCoordinates(props: GeoCoordinatesRequestProps): Promise<GeoCoordinatesResponseProps> IModelDb Get the GeoCoordinate (longitude, latitude, elevation) corresponding to each IModel Coordinate point in the input
getGeometryContainment(props: GeometryContainmentRequestProps): Promise<GeometryContainmentResponseProps> IModelDb Get the clip containment status for the supplied elements.
getIModelCoordinatesFromGeoCoordinates(props: IModelCoordinatesRequestProps): Promise<IModelCoordinatesResponseProps> IModelDb Get the IModel coordinate corresponding to each GeoCoordinate point in the input
getJsClass<T extends undefined>(classFullName: string): T IModelDb Get the JavaScript class that handles a given entity class.
getMassProperties(props: MassPropertiesRequestProps): Promise<MassPropertiesResponseProps> IModelDb Get the mass properties for the supplied elements.
IModelDb Get metadata for a class.
getRpcProps(): IModelRpcProps IModelDb Return a token for RPC operations.
getSchemaProps(name: string): ECSchemaProps IModelDb Returns the full schema for the input name.
importSchemas(schemaFileNames: string[], options?: SchemaImportOptions): Promise<void> IModelDb Import an ECSchema.
isBriefcaseDb(): this is BriefcaseDb IModelDb Type guard for instanceof BriefcaseDb
isSnapshotDb(): this is SnapshotDb IModelDb Type guard for instanceof SnapshotDb
performCheckpoint(): void IModelDb Save all changes and perform a checkpoint on this IModelDb.
prepareStatement(sql: string, logErrors: boolean = true): ECSqlStatement IModelDb Prepare an ECSQL statement.
query(ecsql: string, params?: QueryBinder, options?: QueryOptions): AsyncIterableIterator<any> IModelDb Execute a query and stream its results
queryEntityIds(params: EntityQueryParams): Id64Set IModelDb Query for a set of entity ids, given an EntityQueryParams
queryFilePropertyBlob(prop: FilePropertyProps): undefined | Uint8Array IModelDb Query a "file property" from this iModel, as a blob.
queryFilePropertyString(prop: FilePropertyProps): undefined | string IModelDb Query a "file property" from this iModel, as a string.
queryNextAvailableFileProperty(prop: FilePropertyProps): number IModelDb Query for the next available major id for a "file property" from this iModel.
queryRowCount(ecsql: string, params?: QueryBinder): Promise<number> IModelDb Compute number of rows that would be returned by the ECSQL.
querySchemaVersion(schemaName: string): undefined | string IModelDb Query for a schema of the specified name in this iModel.
restartQuery(token: string, ecsql: string, params?: QueryBinder, options?: QueryOptions): AsyncIterableIterator<any> IModelDb Cancel any previous query with same token and run execute the current specified query.
saveChanges(description?: string): void IModelDb Commit pending changes to this iModel.
saveFileProperty(prop: FilePropertyProps, strValue: undefined | string, blobVal?: Uint8Array): void IModelDb Save a "file property" to this iModel
saveSettingDictionary(name: string, dict: SettingObject): void IModelDb Save a SettingDictionary in this iModel that will be loaded into workspace.settings every time this iModel is opened in future sessions.
setEcefLocation(ecef: EcefLocationProps): void IModelDb Set the EcefLocation for this iModel.
setGeographicCoordinateSystem(geoCRS: GeographicCRSProps): void IModelDb Sets the geographic coordinate reference system from GeographicCRSProps.
spatialToCartographicFromEcef(spatial: Readonly<WritableXYAndZ>, result?: Cartographic): Cartographic IModelDb Convert a point in this iModel's Spatial coordinates to a Cartographic using its ecefLocation.
spatialToEcef(spatial: Readonly<WritableXYAndZ>, result?: Point3d): Point3d IModelDb Convert a point in this iModel's Spatial coordinates to an ECEF point using its ecefLocation.
tryPrepareStatement(sql: string): undefined | ECSqlStatement IModelDb Prepare an ECSQL statement.
updateEcefLocation(ecef: EcefLocation): void IModelDb Update the EcefLocation of this iModel.
updateIModelProps(): void IModelDb Update the IModelProps of this iModel in the database.
updateProjectExtents(newExtents: Range3d): void IModelDb Update the project extents for this iModel.
withPreparedSqliteStatement<T>(sql: string, callback: (stmt: SqliteStatement) => T, logErrors: boolean = true): T IModelDb Use a prepared SQL statement, potentially from the statement cache.
withPreparedStatement<T>(ecsql: string, callback: (stmt: ECSqlStatement) => T, logErrors: boolean = true): T IModelDb Use a prepared ECSQL statement, potentially from the statement cache.
withSqliteStatement<T>(sql: string, callback: (stmt: SqliteStatement) => T, logErrors: boolean = true): T IModelDb Prepared and execute a callback on a SQL statement.
withStatement<T>(ecsql: string, callback: (stmt: ECSqlStatement) => T, logErrors: boolean = true): T IModelDb Prepared and execute a callback on an ECSQL statement.
findByFilename(fileName: string): undefined | IModelDb Static IModelDb Find an opened instance of any subclass of IModelDb, by filename
IModelDb Invoke a callback on each property of the specified class, optionally including superclass properties.
getDefaultSubCategoryId(categoryId: string): string Static IModelDb Get the default subCategoryId for the supplied categoryId
validateSchemas(filePath: string, forReadWrite: boolean): SchemaState Static IModelDb Determines if the schemas in the Db must or can be upgraded by comparing them with those included in the


Name Type Description
briefcaseId Readonly number    
isBriefcase Accessor ReadOnly boolean override superclass method  
iTwinId Accessor ReadOnly string The Guid that identifies the context that owns this iModel.  
onOpen StaticReadonly BeEvent<(_args: OpenBriefcaseArgs) => void> Event raised just before a BriefcaseDb is opened.  
onOpened StaticReadonly BeEvent<(_iModelDb: BriefcaseDb, _args: OpenBriefcaseArgs) => void> Event raised just after a BriefcaseDb is opened.  
txns Readonly TxnManager Manages local changes to this briefcase.  
useLockServer Accessor ProtectedReadOnly boolean Determine whether this BriefcaseDb should use a lock server.  

Inherited properties

Name Type Inherited from Description
_fontMap Protected undefined | FontMap IModelDb  
_openMode Protected OpenMode IModelDb  
changeset ChangesetIdWithIndex IModelDb  
codeSpecs Accessor ReadOnly CodeSpecs IModelDb Get the CodeSpecs in this IModel.
defaultLimit StaticReadonly "1000" IModelDb  
dictionaryId StaticReadonly string IModelDb The Id of the dictionary model.
ecefLocation Accessor undefined | EcefLocation IModelDb The EcefLocation of the iModel in Earth Centered Earth Fixed coordinates.
If the iModel property geographicCoordinateSystem is not defined then the ecefLocation provides a geolocation by defining a
3D coordinate system relative to the Earth model WGS84. Refer to additional documentation for details. If the geographicCoordinateSystem
property is defined then the ecefLocation must be used with care. When the geographicCoordinateSystem is defined it indicates the
iModel cartesian space is the result of a cartographic projection. This implies a flattening of the Earth surface process that
results in scale, angular or area distortion. The ecefLocation is then an approximation calculated at the center of the project extent.
If the project is more than 2 kilometer in size, the ecefLocation may represent a poor approximation of the effective
cartographic projection used and a linear transformation should then be calculated at the exact origin of the data
it must position.
elements Readonly IModelDb.Elements IModelDb  
fontMap Accessor ReadOnly FontMap IModelDb  
geographicCoordinateSystem Accessor undefined | GeographicCRS IModelDb The geographic coordinate reference system of the iModel.
globalOrigin Accessor Point3d IModelDb An offset to be applied to all spatial coordinates.
holdsSchemaLock Accessor ReadOnly boolean IModelDb determine whether the schema lock is currently held for this iModel.
iModelId Accessor ReadOnly string IModelDb The Guid that identifies this iModel.
isGeoLocated Accessor ReadOnly boolean IModelDb True if this iModel has an EcefLocation.
isReadonly Accessor ReadOnly boolean IModelDb Check if this iModel has been opened read-only or not.
isSnapshot Accessor ReadOnly boolean IModelDb Returns true if this is a SnapshotDb
key Accessor ReadOnly string IModelDb Get the key that was used to open this iModel. This is the value used for Rpc and Ipc communications.
locks Accessor ReadOnly LockControl IModelDb Get the LockControl for this iModel.
maxLimit StaticReadonly "10000" IModelDb  
models Readonly IModelDb.Models IModelDb  
name Accessor string IModelDb Name of the iModel
onBeforeClose Readonly BeEvent<() => void> IModelDb Event called when the iModel is about to be closed.
onChangesetApplied Readonly BeEvent<() => void> IModelDb Event called after a changeset is applied to this IModelDb.
onEcefLocationChanged Readonly BeEvent<(previousLocation: undefined | EcefLocation) => void> IModelDb Event raised after IModelDb.ecefLocation changes.
onGeographicCoordinateSystemChanged Readonly BeEvent<(previousGCS: undefined | GeographicCRS) => void> IModelDb Event raised after IModelDb.geographicCoordinateSystem changes.
onGlobalOriginChanged Readonly BeEvent<(previousOrigin: Point3d) => void> IModelDb Event raised after IModelDb.globalOrigin changes.
onNameChanged Readonly BeEvent<(previousName: string) => void> IModelDb Event raised after changes.
onProjectExtentsChanged Readonly BeEvent<(previousExtents: Range3d) => void> IModelDb Event raised after IModelDb.projectExtents changes.
onRootSubjectChanged Readonly BeEvent<(previousSubject: RootSubjectProps) => void> IModelDb Event raised after IModelDb.rootSubject changes.
openMode Accessor ReadOnly OpenMode IModelDb The OpenMode used for this IModel.
pathName Accessor ReadOnly string IModelDb Get the full path fileName of this iModelDb
projectExtents Accessor Range3d IModelDb The volume, in spatial coordinates, inside which the entire project is contained.
relationships Accessor ReadOnly Relationships IModelDb Get the linkTableRelationships for this IModel
repositoryModelId StaticReadonly string IModelDb The Id of the repository model.
rootSubject Accessor RootSubjectProps IModelDb The name and description of the root subject of this iModel
rootSubjectId StaticReadonly string IModelDb The Id of the root subject element.
tiles Readonly IModelDb.Tiles IModelDb  
views Readonly IModelDb.Views IModelDb  
workspace Accessor ReadOnly Workspace IModelDb Get the Workspace for this iModel.

Defined in

Last Updated: 17 March, 2023