StandaloneDb Class
Standalone iModels are read/write files that are not associated with an iTwin or managed by iModelHub. They are relevant only for testing, or 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 an iTwin.
Some additional details. Standalone iModels:
- always have Guid.empty for their iTwinId (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
- cannot apply a changeset to nor generate a changesets (since there is no timeline from which to get/push changesets)
Extends
Methods
Name | Description | |
---|---|---|
constructor(args: { briefcaseId: number, key: string, nativeDb: DgnDb, openMode: OpenMode }): StandaloneDb Protected | ||
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?: SnapshotDbOpenArgs): StandaloneDb Static | Open a standalone iModel file. | |
tryFindByKey(key: string): undefined | StandaloneDb Static | Attempt to find an open IModelDb by key. | |
upgradeStandaloneSchemas(filePath: string): void Static | Upgrades the schemas in the standalone iModel file. |
Inherited methods
Name | Inherited from | Description |
---|---|---|
abandonChanges(): void | BriefcaseDb | Abandon pending changes in this iModel. |
acquireSchemaLock(): Promise<void> | BriefcaseDb | Acquire the exclusive schema lock on this iModel. |
addNewFont(name: string, type?: FontType): number | BriefcaseDb | Add a new font name/type to the FontMap for this iModel and return its FontId. |
cartographicToSpatialFromEcef(cartographic: Cartographic, result?: Point3d): Point3d | BriefcaseDb | Convert a Cartographic to a point in this iModel's Spatial coordinates using its ecefLocation. |
clearCaches(): void | BriefcaseDb | Clear all in-memory caches held in this IModelDb. |
close(): void | BriefcaseDb | Close this IModel, if it is currently open. |
computeProjectExtents(options?: ComputeProjectExtentsOptions): ComputedProjectExtents | BriefcaseDb | Compute an appropriate project extents for this iModel based on the ranges of all spatial elements. |
constructEntity<T extends Entity<T>>(props: EntityProps): T | BriefcaseDb | Construct an entity (Element or Model) from an iModel. |
containsClass(classFullName: string): boolean | BriefcaseDb | Query if this iModel contains the definition of the specified class. |
createQueryReader(ecsql: string, params?: QueryBinder, config?: QueryOptions): ECSqlReader | BriefcaseDb | Allow to execute query and read results along with meta data. |
deleteFileProperty(prop: FilePropertyProps): void | BriefcaseDb | delete a "file property" from this iModel |
deleteSettingDictionary(name: string): void | BriefcaseDb | Delete a SettingDictionary, previously added with BriefcaseDb.saveSettingDictionary, from this iModel. |
ecefToSpatial(ecef: Readonly<WritableXYAndZ>, result?: Point3d): Point3d | BriefcaseDb | Convert a point in ECEF coordinates to a point in this iModel's Spatial coordinates using its BriefcaseDb.ecefLocation. |
exportGraphics(exportProps: ExportGraphicsOptions): DbResult | BriefcaseDb | Export meshes suitable for graphics APIs from arbitrary geometry in elements in this IModelDb. |
exportPartGraphics(exportProps: ExportPartGraphicsOptions): DbResult | BriefcaseDb | Exports meshes suitable for graphics APIs from a specified GeometryPart |
generateElementGraphics(request: ElementGraphicsRequestProps): Promise<undefined | Uint8Array> | BriefcaseDb | Generate graphics for an element or geometry stream. |
getBriefcaseId(): number | BriefcaseDb | Get the briefcase Id of this iModel |
getEcefTransform(): Transform | BriefcaseDb | Get the Transform from this iModel's Spatial coordinates to ECEF coordinates using its ecefLocation. |
getGeoCoordinatesFromIModelCoordinates(props: GeoCoordinatesRequestProps): Promise<GeoCoordinatesResponseProps> | BriefcaseDb | Get the GeoCoordinate (longitude, latitude, elevation) corresponding to each IModel Coordinate point in the input |
getGeometryContainment(props: GeometryContainmentRequestProps): Promise<GeometryContainmentResponseProps> | BriefcaseDb | Get the clip containment status for the supplied elements. |
getIModelCoordinatesFromGeoCoordinates(props: IModelCoordinatesRequestProps): Promise<IModelCoordinatesResponseProps> | BriefcaseDb | Get the IModel coordinate corresponding to each GeoCoordinate point in the input |
getJsClass<T extends undefined>(classFullName: string): T | BriefcaseDb | Get the JavaScript class that handles a given entity class. |
getMassProperties(props: MassPropertiesRequestProps): Promise<MassPropertiesResponseProps> | BriefcaseDb | Get the mass properties for the supplied elements. |
getMetaData(classFullName: string): EntityMetaData | BriefcaseDb | Get metadata for a class. |
getRpcProps(): IModelRpcProps | BriefcaseDb | Return a token for RPC operations. |
getSchemaProps(name: string): ECSchemaProps | BriefcaseDb | Returns the full schema for the input name. |
importSchemas(schemaFileNames: string[], options?: SchemaImportOptions): Promise<void> | BriefcaseDb | Import an ECSchema. |
isBriefcaseDb(): this is BriefcaseDb | BriefcaseDb | Type guard for instanceof BriefcaseDb |
isSnapshotDb(): this is SnapshotDb | BriefcaseDb | Type guard for instanceof SnapshotDb |
performCheckpoint(): void | BriefcaseDb | Save all changes and perform a checkpoint on this IModelDb. |
prepareStatement(sql: string, logErrors: boolean = true): ECSqlStatement | BriefcaseDb | Prepare an ECSQL statement. |
pullChanges(arg?: PullChangesArgs): Promise<void> | BriefcaseDb | Pull and apply changesets from iModelHub |
pushChanges(arg: PushChangesArgs): Promise<void> | BriefcaseDb | Push changes to iModelHub. |
query(ecsql: string, params?: QueryBinder, options?: QueryOptions): AsyncIterableIterator<any> | BriefcaseDb | Execute a query and stream its results |
queryEntityIds(params: EntityQueryParams): Id64Set | BriefcaseDb | Query for a set of entity ids, given an EntityQueryParams |
queryFilePropertyBlob(prop: FilePropertyProps): undefined | Uint8Array | BriefcaseDb | Query a "file property" from this iModel, as a blob. |
queryFilePropertyString(prop: FilePropertyProps): undefined | string | BriefcaseDb | Query a "file property" from this iModel, as a string. |
queryNextAvailableFileProperty(prop: FilePropertyProps): number | BriefcaseDb | Query for the next available major id for a "file property" from this iModel. |
queryRowCount(ecsql: string, params?: QueryBinder): Promise<number> | BriefcaseDb | Compute number of rows that would be returned by the ECSQL. |
querySchemaVersion(schemaName: string): undefined | string | BriefcaseDb | Query for a schema of the specified name in this iModel. |
restartQuery(token: string, ecsql: string, params?: QueryBinder, options?: QueryOptions): AsyncIterableIterator<any> | BriefcaseDb | Cancel any previous query with same token and run execute the current specified query. |
saveChanges(description?: string): void | BriefcaseDb | Commit pending changes to this iModel. |
saveFileProperty(prop: FilePropertyProps, strValue: undefined | string, blobVal?: Uint8Array): void | BriefcaseDb | Save a "file property" to this iModel |
saveSettingDictionary(name: string, dict: SettingObject): void | BriefcaseDb | 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 | BriefcaseDb | Set the EcefLocation for this iModel. |
setGeographicCoordinateSystem(geoCRS: GeographicCRSProps): void | BriefcaseDb | Sets the geographic coordinate reference system from GeographicCRSProps. |
spatialToCartographicFromEcef(spatial: Readonly<WritableXYAndZ>, result?: Cartographic): Cartographic | BriefcaseDb | Convert a point in this iModel's Spatial coordinates to a Cartographic using its ecefLocation. |
spatialToEcef(spatial: Readonly<WritableXYAndZ>, result?: Point3d): Point3d | BriefcaseDb | Convert a point in this iModel's Spatial coordinates to an ECEF point using its ecefLocation. |
tryPrepareStatement(sql: string): undefined | ECSqlStatement | BriefcaseDb | Prepare an ECSQL statement. |
updateEcefLocation(ecef: EcefLocation): void | BriefcaseDb | Update the EcefLocation of this iModel. |
updateIModelProps(): void | BriefcaseDb | Update the IModelProps of this iModel in the database. |
updateProjectExtents(newExtents: Range3d): void | BriefcaseDb | Update the project extents for this iModel. |
withPreparedSqliteStatement<T>(sql: string, callback: (stmt: SqliteStatement) => T, logErrors: boolean = true): T | BriefcaseDb | Use a prepared SQL statement, potentially from the statement cache. |
withPreparedStatement<T>(ecsql: string, callback: (stmt: ECSqlStatement) => T, logErrors: boolean = true): T | BriefcaseDb | Use a prepared ECSQL statement, potentially from the statement cache. |
withSqliteStatement<T>(sql: string, callback: (stmt: SqliteStatement) => T, logErrors: boolean = true): T | BriefcaseDb | Prepared and execute a callback on a SQL statement. |
withStatement<T>(ecsql: string, callback: (stmt: ECSqlStatement) => T, logErrors: boolean = true): T | BriefcaseDb | Prepared and execute a callback on an ECSQL statement. |
findByFilename(fileName: string): undefined | IModelDb Static | BriefcaseDb | 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 | BriefcaseDb | Invoke a callback on each property of the specified class, optionally including superclass properties. |
getDefaultSubCategoryId(categoryId: string): string Static | BriefcaseDb | Get the default subCategoryId for the supplied categoryId |
open(args: OpenBriefcaseArgs): Promise<BriefcaseDb> Static | BriefcaseDb | Open a briefcase file and return a new BriefcaseDb to interact with it. |
upgradeSchemas(briefcase: OpenBriefcaseArgs): Promise<void> Static | BriefcaseDb | Upgrades the schemas in the iModel based on the current version of the software. |
validateSchemas(filePath: string, forReadWrite: boolean): SchemaState Static | BriefcaseDb | Determines if the schemas in the Db must or can be upgraded by comparing them with those included in the |
Properties
Name | Type | Description | |
---|---|---|---|
isStandalone Accessor ReadOnly | boolean | ||
useLockServer Accessor ProtectedReadOnly | boolean |
Inherited properties
Name | Type | Inherited from | Description |
---|---|---|---|
_fontMap Protected | undefined | FontMap | BriefcaseDb | |
_openMode Protected | OpenMode | BriefcaseDb | |
briefcaseId Readonly | number | BriefcaseDb | |
changeset | ChangesetIdWithIndex | BriefcaseDb | |
codeSpecs Accessor ReadOnly | CodeSpecs | BriefcaseDb | Get the CodeSpecs in this IModel. |
defaultLimit StaticReadonly | "1000" | BriefcaseDb | |
dictionaryId StaticReadonly | string | BriefcaseDb | The Id of the dictionary model. |
ecefLocation Accessor | undefined | EcefLocation | BriefcaseDb | 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 | BriefcaseDb | |
fontMap Accessor ReadOnly | FontMap | BriefcaseDb | |
geographicCoordinateSystem Accessor | undefined | GeographicCRS | BriefcaseDb | The geographic coordinate reference system of the iModel. |
globalOrigin Accessor | Point3d | BriefcaseDb | An offset to be applied to all spatial coordinates. |
holdsSchemaLock Accessor ReadOnly | boolean | BriefcaseDb | determine whether the schema lock is currently held for this iModel. |
iModelId Accessor ReadOnly | string | BriefcaseDb | The Guid that identifies this iModel. |
isBriefcase Accessor ReadOnly | boolean | BriefcaseDb | override superclass method |
isGeoLocated Accessor ReadOnly | boolean | BriefcaseDb | True if this iModel has an EcefLocation. |
isReadonly Accessor ReadOnly | boolean | BriefcaseDb | Check if this iModel has been opened read-only or not. |
isSnapshot Accessor ReadOnly | boolean | BriefcaseDb | Returns true if this is a SnapshotDb |
iTwinId Accessor ReadOnly | string | BriefcaseDb | The Guid that identifies the context that owns this iModel. GuidString | undefined for the superclass, but required for BriefcaseDb |
key Accessor ReadOnly | string | BriefcaseDb | Get the key that was used to open this iModel. This is the value used for Rpc and Ipc communications. |
locks Accessor ReadOnly | LockControl | BriefcaseDb | Get the LockControl for this iModel. |
maxLimit StaticReadonly | "10000" | BriefcaseDb | |
models Readonly | IModelDb.Models | BriefcaseDb | |
name Accessor | string | BriefcaseDb | Name of the iModel |
onBeforeClose Readonly | BeEvent<() => void> | BriefcaseDb | Event called when the iModel is about to be closed. |
onChangesetApplied Readonly | BeEvent<() => void> | BriefcaseDb | Event called after a changeset is applied to this IModelDb. |
onEcefLocationChanged Readonly | BeEvent<(previousLocation: undefined | EcefLocation) => void> | BriefcaseDb | Event raised after BriefcaseDb.ecefLocation changes. |
onGeographicCoordinateSystemChanged Readonly | BeEvent<(previousGCS: undefined | GeographicCRS) => void> | BriefcaseDb | Event raised after BriefcaseDb.geographicCoordinateSystem changes. |
onGlobalOriginChanged Readonly | BeEvent<(previousOrigin: Point3d) => void> | BriefcaseDb | Event raised after BriefcaseDb.globalOrigin changes. |
onNameChanged Readonly | BeEvent<(previousName: string) => void> | BriefcaseDb | Event raised after BriefcaseDb.name changes. |
onOpen StaticReadonly | BeEvent<(_args: OpenBriefcaseArgs) => void> | BriefcaseDb | Event raised just before a BriefcaseDb is opened. |
onOpened StaticReadonly | BeEvent<(_iModelDb: BriefcaseDb, _args: OpenBriefcaseArgs) => void> | BriefcaseDb | Event raised just after a BriefcaseDb is opened. |
onProjectExtentsChanged Readonly | BeEvent<(previousExtents: Range3d) => void> | BriefcaseDb | Event raised after BriefcaseDb.projectExtents changes. |
onRootSubjectChanged Readonly | BeEvent<(previousSubject: RootSubjectProps) => void> | BriefcaseDb | Event raised after BriefcaseDb.rootSubject changes. |
openMode Accessor ReadOnly | OpenMode | BriefcaseDb | The OpenMode used for this IModel. |
pathName Accessor ReadOnly | string | BriefcaseDb | Get the full path fileName of this iModelDb |
projectExtents Accessor | Range3d | BriefcaseDb | The volume, in spatial coordinates, inside which the entire project is contained. |
relationships Accessor ReadOnly | Relationships | BriefcaseDb | Get the linkTableRelationships for this IModel |
repositoryModelId StaticReadonly | string | BriefcaseDb | The Id of the repository model. |
rootSubject Accessor | RootSubjectProps | BriefcaseDb | The name and description of the root subject of this iModel |
rootSubjectId StaticReadonly | string | BriefcaseDb | The Id of the root subject element. |
tiles Readonly | IModelDb.Tiles | BriefcaseDb | |
txns Readonly | TxnManager | BriefcaseDb | Manages local changes to this briefcase. |
views Readonly | IModelDb.Views | BriefcaseDb | |
workspace Accessor ReadOnly | Workspace | BriefcaseDb | Get the Workspace for this iModel. |
Defined in
- backend/src/IModelDb.ts Line 2711
Last Updated: 30 November, 2023