API Reference > imodeljs-backend > iModels > StandaloneDb StandaloneDb Class Standalone iModels are read/write files that are not managed by iModelHub. They are relevant only for small-scale single-user scenarios. Standalone iModels are designed such that the API for Standalone iModels and Briefcase iModels (those synchronized with iModelHub) are as similar and consistent as possible. This leads to a straightforward process where the a user starts with StandaloneDb and can optionally choose to upgrade to iModelHub. Some additional details. Standalone iModels: always have Guid.empty for their contextId (they are "unassociated" files) always have BriefcaseId === BriefcaseIdValue.Unassigned are connected to the frontend via BriefcaseConnection.openStandalone may be opened without supplying any user credentials may be opened read/write may optionally support undo/redo via TxnManager cannot apply a changeset to nor generate a changesets (since there is no timeline from which to get/push changesets) Extends IModelDb Methods Name Description createEmpty(filePath: string, args: CreateEmptyStandaloneIModelProps): StandaloneDb Static Create an empty standalone iModel. findByKey(key: string): StandaloneDb Static Find an open IModelDb by its key. openFile(filePath: string, openMode: OpenMode = OpenMode.ReadWrite, options?: OpenDbKey): StandaloneDb Static Open a standalone iModel file. tryFindByKey(key: string): undefined | StandaloneDb Static Attempt to find an open IModelDb by key. upgradeSchemas(filePath: string): void Static Upgrades the schemas in the standalone iModel file. Inherited methods Name Inherited from Description abandonChanges(): void IModelDb Abandon pending changes in this iModel. cancelSnap(sessionId: string): void IModelDb Cancel a previously requested snap. 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. clearSqliteStatementCache(): void IModelDb Empty the SqliteStatementCache for this iModel. clearStatementCache(): void IModelDb Empty the ECSqlStatementCache for this iModel. 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. deleteFileProperty(prop: FilePropertyProps): DbResult IModelDb delete a "file property" 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. embedFont(prop: FontProps): FontProps IModelDb 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(requestContext: ClientRequestContext, props: string): Promise<GeoCoordinatesResponseProps> IModelDb Get the GeoCoordinate (longitude, latitude, elevation) corresponding to each IModel Coordinate point in the input getGeometryContainment(requestContext: ClientRequestContext, props: GeometryContainmentRequestProps): Promise<GeometryContainmentResponseProps> IModelDb Get the clip containment status for the supplied elements. getGuid(): string IModelDb Get the GUID of this iModel. getIModelCoordinatesFromGeoCoordinates(requestContext: ClientRequestContext, props: string): 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(requestContext: ClientRequestContext, props: MassPropertiesRequestProps): Promise<MassPropertiesResponseProps> IModelDb Get the mass properties for the supplied elements. getMetaData(classFullName: string): EntityMetaData IModelDb Get metadata for a class. getRpcProps(): IModelRpcProps IModelDb Return a token for RPC operations. importSchemas(requestContext: ClientRequestContext, schemaFileNames: string[]): 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 prepareStatement(sql: string): ECSqlStatement IModelDb Prepare an ECSQL statement. query(ecsql: string, bindings?: object | any[], limitRows?: number, quota?: QueryQuota, priority?: QueryPriority, abbreviateBlobs?: boolean): 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, bindings?: object | any[]): 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. readFontJson(): string IModelDb requestSnap(requestContext: ClientRequestContext, sessionId: string, props: SnapRequestProps): Promise<SnapResponseProps> IModelDb restartQuery(token: string, ecsql: string, bindings?: object | any[], limitRows?: number, quota?: QueryQuota, priority?: QueryPriority): AsyncIterableIterator<any> IModelDb Execute a query and stream its results saveChanges(description?: string): void IModelDb Commit pending changes to this iModel. saveFileProperty(prop: FilePropertyProps, strValue: undefined | string, blobVal?: Uint8Array): DbResult IModelDb Save a "file property" to this iModel 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): T IModelDb Use a prepared SQL statement, potentially from the statement cache. withPreparedStatement<T>(ecsql: string, callback: (stmt: ECSqlStatement) => T): T IModelDb Use a prepared ECSQL statement, potentially from the statement cache. withSqliteStatement<T>(sql: string, callback: (stmt: SqliteStatement) => T): T IModelDb Prepared and execute a callback on a SQL statement. withStatement<T>(ecsql: string, callback: (stmt: ECSqlStatement) => T): 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 forEachMetaData(iModel: IModelDb, classFullName: string, wantSuper: boolean, func: PropertyCallback, includeCustom: boolean = true): void Static 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 Properties Name Type Description filePath Accessor ReadOnly string The full path to the standalone iModel file. isStandalone Accessor ReadOnly boolean txns Readonly TxnManager Manages local changes to this briefcase. Inherited properties Name Type Inherited from Description _concurrentQueryStats Protected { dispose: () => void, lastActivityTime: number, logTimerHandle: any, resetTimerHandle: any } IModelDb _edit ProtectedStaticReadonly "StandaloneEdit" IModelDb _fontMap Protected undefined | FontMap IModelDb changeset ChangesetIdWithIndex IModelDb changeSetId Accessor ReadOnly string IModelDb The Id of the last changeset that was applied to this iModel. codeSpecs Accessor ReadOnly CodeSpecs IModelDb Get the CodeSpecs in this IModel. contextId Accessor ReadOnly undefined | string IModelDb The Guid that identifies the context that owns 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. 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. iModelId Accessor ReadOnly string IModelDb The Guid that identifies this iModel. isBriefcase Accessor ReadOnly boolean IModelDb Returns true if this is a BriefcaseDb 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. 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 IModelDb.name 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 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 Defined in core/backend/src/IModelDb.ts Line 2596 Last Updated: 11 June, 2024