@itwin/core-backend 5.9.0-dev.4 → 5.9.0-dev.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/BackendHubAccess.js.map +1 -1
- package/lib/cjs/BackendLoggerCategory.js.map +1 -1
- package/lib/cjs/BisCoreSchema.js.map +1 -1
- package/lib/cjs/BlobContainerService.js.map +1 -1
- package/lib/cjs/BriefcaseManager.js +3 -3
- package/lib/cjs/BriefcaseManager.js.map +1 -1
- package/lib/cjs/CatalogDb.js.map +1 -1
- package/lib/cjs/Category.d.ts +37 -7
- package/lib/cjs/Category.d.ts.map +1 -1
- package/lib/cjs/Category.js +33 -42
- package/lib/cjs/Category.js.map +1 -1
- package/lib/cjs/ChangeSummaryManager.js +2 -2
- package/lib/cjs/ChangeSummaryManager.js.map +1 -1
- package/lib/cjs/ChangedElementsDb.js.map +1 -1
- package/lib/cjs/ChangesetECAdaptor.d.ts.map +1 -1
- package/lib/cjs/ChangesetECAdaptor.js +253 -250
- package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
- package/lib/cjs/ChannelControl.d.ts +29 -0
- package/lib/cjs/ChannelControl.d.ts.map +1 -1
- package/lib/cjs/ChannelControl.js.map +1 -1
- package/lib/cjs/CheckpointManager.js +1 -1
- package/lib/cjs/CheckpointManager.js.map +1 -1
- package/lib/cjs/ClassRegistry.js +5 -5
- package/lib/cjs/ClassRegistry.js.map +1 -1
- package/lib/cjs/CloudSqlite.js.map +1 -1
- package/lib/cjs/CodeService.js.map +1 -1
- package/lib/cjs/CodeSpecs.d.ts +32 -3
- package/lib/cjs/CodeSpecs.d.ts.map +1 -1
- package/lib/cjs/CodeSpecs.js +48 -20
- package/lib/cjs/CodeSpecs.js.map +1 -1
- package/lib/cjs/ConcurrentQuery.js.map +1 -1
- package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
- package/lib/cjs/DevTools.js.map +1 -1
- package/lib/cjs/DisplayStyle.d.ts +18 -3
- package/lib/cjs/DisplayStyle.d.ts.map +1 -1
- package/lib/cjs/DisplayStyle.js +10 -21
- package/lib/cjs/DisplayStyle.js.map +1 -1
- package/lib/cjs/ECDb.js.map +1 -1
- package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
- package/lib/cjs/ECSqlRowExecutor.js.map +1 -1
- package/lib/cjs/ECSqlStatement.js.map +1 -1
- package/lib/cjs/ECSqlSyncReader.js.map +1 -1
- package/lib/cjs/EditTxn.d.ts +262 -0
- package/lib/cjs/EditTxn.d.ts.map +1 -0
- package/lib/cjs/EditTxn.js +548 -0
- package/lib/cjs/EditTxn.js.map +1 -0
- package/lib/cjs/Element.d.ts +74 -5
- package/lib/cjs/Element.d.ts.map +1 -1
- package/lib/cjs/Element.js +63 -75
- package/lib/cjs/Element.js.map +1 -1
- package/lib/cjs/ElementAspect.d.ts +10 -0
- package/lib/cjs/ElementAspect.d.ts.map +1 -1
- package/lib/cjs/ElementAspect.js +21 -12
- package/lib/cjs/ElementAspect.js.map +1 -1
- package/lib/cjs/ElementGraphics.js.map +1 -1
- package/lib/cjs/ElementTreeWalker.d.ts +56 -3
- package/lib/cjs/ElementTreeWalker.d.ts.map +1 -1
- package/lib/cjs/ElementTreeWalker.js +53 -40
- package/lib/cjs/ElementTreeWalker.js.map +1 -1
- package/lib/cjs/Entity.js.map +1 -1
- package/lib/cjs/EntityReferences.js.map +1 -1
- package/lib/cjs/ExportGraphics.js.map +1 -1
- package/lib/cjs/ExternalSource.d.ts +11 -2
- package/lib/cjs/ExternalSource.d.ts.map +1 -1
- package/lib/cjs/ExternalSource.js +10 -8
- package/lib/cjs/ExternalSource.js.map +1 -1
- package/lib/cjs/FontFile.js.map +1 -1
- package/lib/cjs/GeoCoordConfig.js.map +1 -1
- package/lib/cjs/GeographicCRSServices.js.map +1 -1
- package/lib/cjs/GeometrySummary.js +47 -47
- package/lib/cjs/GeometrySummary.js.map +1 -1
- package/lib/cjs/IModelDb.d.ts +66 -22
- package/lib/cjs/IModelDb.d.ts.map +1 -1
- package/lib/cjs/IModelDb.js +182 -296
- package/lib/cjs/IModelDb.js.map +1 -1
- package/lib/cjs/IModelDbFonts.js.map +1 -1
- package/lib/cjs/IModelElementCloneContext.js.map +1 -1
- package/lib/cjs/IModelHost.d.ts +22 -0
- package/lib/cjs/IModelHost.d.ts.map +1 -1
- package/lib/cjs/IModelHost.js +9 -0
- package/lib/cjs/IModelHost.js.map +1 -1
- package/lib/cjs/IModelIncrementalSchemaLocater.js.map +1 -1
- package/lib/cjs/IModelJsFs.js.map +1 -1
- package/lib/cjs/ImageSourceConversion.js.map +1 -1
- package/lib/cjs/IpcHost.js +2 -2
- package/lib/cjs/IpcHost.js.map +1 -1
- package/lib/cjs/LineStyle.d.ts +47 -7
- package/lib/cjs/LineStyle.d.ts.map +1 -1
- package/lib/cjs/LineStyle.js +38 -33
- package/lib/cjs/LineStyle.js.map +1 -1
- package/lib/cjs/LocalHub.js +1 -1
- package/lib/cjs/LocalHub.js.map +1 -1
- package/lib/cjs/LocalhostIpcHost.js.map +1 -1
- package/lib/cjs/LockControl.js.map +1 -1
- package/lib/cjs/Material.d.ts +8 -1
- package/lib/cjs/Material.d.ts.map +1 -1
- package/lib/cjs/Material.js +6 -12
- package/lib/cjs/Material.js.map +1 -1
- package/lib/cjs/Model.d.ts +59 -20
- package/lib/cjs/Model.d.ts.map +1 -1
- package/lib/cjs/Model.js +38 -80
- package/lib/cjs/Model.js.map +1 -1
- package/lib/cjs/NativeAppStorage.js.map +1 -1
- package/lib/cjs/NativeHost.js.map +1 -1
- package/lib/cjs/NavigationRelationship.js.map +1 -1
- package/lib/cjs/PromiseMemoizer.js.map +1 -1
- package/lib/cjs/PropertyStore.js.map +1 -1
- package/lib/cjs/Relationship.d.ts +72 -7
- package/lib/cjs/Relationship.d.ts.map +1 -1
- package/lib/cjs/Relationship.js +39 -21
- package/lib/cjs/Relationship.js.map +1 -1
- package/lib/cjs/RpcBackend.js.map +1 -1
- package/lib/cjs/SQLiteDb.js.map +1 -1
- package/lib/cjs/Schema.js.map +1 -1
- package/lib/cjs/SchemaSync.js +4 -4
- package/lib/cjs/SchemaSync.js.map +1 -1
- package/lib/cjs/SchemaUtils.js.map +1 -1
- package/lib/cjs/SheetIndex.d.ts +9 -0
- package/lib/cjs/SheetIndex.d.ts.map +1 -1
- package/lib/cjs/SheetIndex.js +38 -35
- package/lib/cjs/SheetIndex.js.map +1 -1
- package/lib/cjs/SqliteChangesetReader.js.map +1 -1
- package/lib/cjs/SqliteStatement.js.map +1 -1
- package/lib/cjs/StashManager.js +1 -1
- package/lib/cjs/StashManager.js.map +1 -1
- package/lib/cjs/Texture.d.ts +6 -0
- package/lib/cjs/Texture.d.ts.map +1 -1
- package/lib/cjs/Texture.js +6 -14
- package/lib/cjs/Texture.js.map +1 -1
- package/lib/cjs/TileStorage.js.map +1 -1
- package/lib/cjs/TxnManager.d.ts +5 -5
- package/lib/cjs/TxnManager.d.ts.map +1 -1
- package/lib/cjs/TxnManager.js +23 -7
- package/lib/cjs/TxnManager.js.map +1 -1
- package/lib/cjs/ViewDefinition.d.ts +21 -1
- package/lib/cjs/ViewDefinition.d.ts.map +1 -1
- package/lib/cjs/ViewDefinition.js +27 -66
- package/lib/cjs/ViewDefinition.js.map +1 -1
- package/lib/cjs/ViewStateHydrator.js.map +1 -1
- package/lib/cjs/ViewStore.js.map +1 -1
- package/lib/cjs/annotations/ElementDrivesTextAnnotation.d.ts +14 -6
- package/lib/cjs/annotations/ElementDrivesTextAnnotation.d.ts.map +1 -1
- package/lib/cjs/annotations/ElementDrivesTextAnnotation.js +33 -27
- package/lib/cjs/annotations/ElementDrivesTextAnnotation.js.map +1 -1
- package/lib/cjs/annotations/FrameGeometry.js.map +1 -1
- package/lib/cjs/annotations/LeaderGeometry.js.map +1 -1
- package/lib/cjs/annotations/TextAnnotationElement.d.ts.map +1 -1
- package/lib/cjs/annotations/TextAnnotationElement.js +6 -5
- package/lib/cjs/annotations/TextAnnotationElement.js.map +1 -1
- package/lib/cjs/annotations/TextAnnotationGeometry.js.map +1 -1
- package/lib/cjs/annotations/TextBlockGeometry.js.map +1 -1
- package/lib/cjs/annotations/TextBlockLayout.js.map +1 -1
- package/lib/cjs/assets/IModelChange.02.00.00.ecschema.xml +90 -90
- package/lib/cjs/assets/Settings/Schemas/Base.Schema.json +32 -32
- package/lib/cjs/assets/Settings/Schemas/Gcs.schema.json +27 -27
- package/lib/cjs/assets/Settings/Schemas/Workspace.Schema.json +94 -94
- package/lib/cjs/assets/Settings/backend.setting.json5 +21 -21
- package/lib/cjs/core-backend.d.ts +1 -0
- package/lib/cjs/core-backend.d.ts.map +1 -1
- package/lib/cjs/core-backend.js +1 -0
- package/lib/cjs/core-backend.js.map +1 -1
- package/lib/cjs/domains/FunctionalElements.d.ts +6 -2
- package/lib/cjs/domains/FunctionalElements.d.ts.map +1 -1
- package/lib/cjs/domains/FunctionalElements.js +8 -13
- package/lib/cjs/domains/FunctionalElements.js.map +1 -1
- package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
- package/lib/cjs/domains/GenericElements.d.ts +11 -4
- package/lib/cjs/domains/GenericElements.d.ts.map +1 -1
- package/lib/cjs/domains/GenericElements.js +13 -24
- package/lib/cjs/domains/GenericElements.js.map +1 -1
- package/lib/cjs/domains/GenericSchema.js.map +1 -1
- package/lib/cjs/internal/ChangesetConflictArgs.js.map +1 -1
- package/lib/cjs/internal/ChannelAdmin.d.ts +15 -0
- package/lib/cjs/internal/ChannelAdmin.d.ts.map +1 -1
- package/lib/cjs/internal/ChannelAdmin.js +5 -3
- package/lib/cjs/internal/ChannelAdmin.js.map +1 -1
- package/lib/cjs/internal/ElementLRUCache.js.map +1 -1
- package/lib/cjs/internal/FontFileImpl.js.map +1 -1
- package/lib/cjs/internal/HubMock.js.map +1 -1
- package/lib/cjs/internal/IModelDbFontsImpl.js.map +1 -1
- package/lib/cjs/internal/IntegrityCheck.js.map +1 -1
- package/lib/cjs/internal/NativePlatform.js.map +1 -1
- package/lib/cjs/internal/NoLocks.js.map +1 -1
- package/lib/cjs/internal/OnlineStatus.js.map +1 -1
- package/lib/cjs/internal/ServerBasedLocks.js.map +1 -1
- package/lib/cjs/internal/Symbols.d.ts +4 -0
- package/lib/cjs/internal/Symbols.d.ts.map +1 -1
- package/lib/cjs/internal/Symbols.js +5 -1
- package/lib/cjs/internal/Symbols.js.map +1 -1
- package/lib/cjs/internal/annotations/fields.d.ts +3 -2
- package/lib/cjs/internal/annotations/fields.d.ts.map +1 -1
- package/lib/cjs/internal/annotations/fields.js +7 -6
- package/lib/cjs/internal/annotations/fields.js.map +1 -1
- package/lib/cjs/internal/cross-package.js.map +1 -1
- package/lib/cjs/internal/workspace/SettingsEditorImpl.js.map +1 -1
- package/lib/cjs/internal/workspace/SettingsImpl.js.map +1 -1
- package/lib/cjs/internal/workspace/SettingsSchemasImpl.js.map +1 -1
- package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
- package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
- package/lib/cjs/rpc/multipart.js.map +1 -1
- package/lib/cjs/rpc/tracing.js.map +1 -1
- package/lib/cjs/rpc/web/logging.js.map +1 -1
- package/lib/cjs/rpc/web/request.js.map +1 -1
- package/lib/cjs/rpc/web/response.js.map +1 -1
- package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/RpcBriefcaseUtility.d.ts.map +1 -1
- package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
- package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
- package/lib/cjs/workspace/Settings.js.map +1 -1
- package/lib/cjs/workspace/SettingsDb.js.map +1 -1
- package/lib/cjs/workspace/SettingsEditor.js.map +1 -1
- package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
- package/lib/cjs/workspace/Workspace.js.map +1 -1
- package/lib/cjs/workspace/WorkspaceEditor.js.map +1 -1
- package/lib/esm/BackendHubAccess.js.map +1 -1
- package/lib/esm/BackendLoggerCategory.js.map +1 -1
- package/lib/esm/BisCoreSchema.js.map +1 -1
- package/lib/esm/BlobContainerService.js.map +1 -1
- package/lib/esm/BriefcaseManager.js +3 -3
- package/lib/esm/BriefcaseManager.js.map +1 -1
- package/lib/esm/CatalogDb.js.map +1 -1
- package/lib/esm/Category.d.ts +37 -7
- package/lib/esm/Category.d.ts.map +1 -1
- package/lib/esm/Category.js +33 -42
- package/lib/esm/Category.js.map +1 -1
- package/lib/esm/ChangeSummaryManager.js +2 -2
- package/lib/esm/ChangeSummaryManager.js.map +1 -1
- package/lib/esm/ChangedElementsDb.js.map +1 -1
- package/lib/esm/ChangesetECAdaptor.d.ts.map +1 -1
- package/lib/esm/ChangesetECAdaptor.js +253 -250
- package/lib/esm/ChangesetECAdaptor.js.map +1 -1
- package/lib/esm/ChannelControl.d.ts +29 -0
- package/lib/esm/ChannelControl.d.ts.map +1 -1
- package/lib/esm/ChannelControl.js.map +1 -1
- package/lib/esm/CheckpointManager.js +1 -1
- package/lib/esm/CheckpointManager.js.map +1 -1
- package/lib/esm/ClassRegistry.js +5 -5
- package/lib/esm/ClassRegistry.js.map +1 -1
- package/lib/esm/CloudSqlite.js.map +1 -1
- package/lib/esm/CodeService.js.map +1 -1
- package/lib/esm/CodeSpecs.d.ts +32 -3
- package/lib/esm/CodeSpecs.d.ts.map +1 -1
- package/lib/esm/CodeSpecs.js +49 -21
- package/lib/esm/CodeSpecs.js.map +1 -1
- package/lib/esm/ConcurrentQuery.js.map +1 -1
- package/lib/esm/CustomViewState3dCreator.js.map +1 -1
- package/lib/esm/DevTools.js.map +1 -1
- package/lib/esm/DisplayStyle.d.ts +18 -3
- package/lib/esm/DisplayStyle.d.ts.map +1 -1
- package/lib/esm/DisplayStyle.js +10 -21
- package/lib/esm/DisplayStyle.js.map +1 -1
- package/lib/esm/ECDb.js.map +1 -1
- package/lib/esm/ECSchemaXmlContext.js.map +1 -1
- package/lib/esm/ECSqlRowExecutor.js.map +1 -1
- package/lib/esm/ECSqlStatement.js.map +1 -1
- package/lib/esm/ECSqlSyncReader.js.map +1 -1
- package/lib/esm/EditTxn.d.ts +262 -0
- package/lib/esm/EditTxn.d.ts.map +1 -0
- package/lib/esm/EditTxn.js +543 -0
- package/lib/esm/EditTxn.js.map +1 -0
- package/lib/esm/Element.d.ts +74 -5
- package/lib/esm/Element.d.ts.map +1 -1
- package/lib/esm/Element.js +64 -76
- package/lib/esm/Element.js.map +1 -1
- package/lib/esm/ElementAspect.d.ts +10 -0
- package/lib/esm/ElementAspect.d.ts.map +1 -1
- package/lib/esm/ElementAspect.js +22 -13
- package/lib/esm/ElementAspect.js.map +1 -1
- package/lib/esm/ElementGraphics.js.map +1 -1
- package/lib/esm/ElementTreeWalker.d.ts +56 -3
- package/lib/esm/ElementTreeWalker.d.ts.map +1 -1
- package/lib/esm/ElementTreeWalker.js +53 -40
- package/lib/esm/ElementTreeWalker.js.map +1 -1
- package/lib/esm/Entity.js.map +1 -1
- package/lib/esm/EntityReferences.js.map +1 -1
- package/lib/esm/ExportGraphics.js.map +1 -1
- package/lib/esm/ExternalSource.d.ts +11 -2
- package/lib/esm/ExternalSource.d.ts.map +1 -1
- package/lib/esm/ExternalSource.js +10 -8
- package/lib/esm/ExternalSource.js.map +1 -1
- package/lib/esm/FontFile.js.map +1 -1
- package/lib/esm/GeoCoordConfig.js.map +1 -1
- package/lib/esm/GeographicCRSServices.js.map +1 -1
- package/lib/esm/GeometrySummary.js +47 -47
- package/lib/esm/GeometrySummary.js.map +1 -1
- package/lib/esm/IModelDb.d.ts +66 -22
- package/lib/esm/IModelDb.d.ts.map +1 -1
- package/lib/esm/IModelDb.js +184 -298
- package/lib/esm/IModelDb.js.map +1 -1
- package/lib/esm/IModelDbFonts.js.map +1 -1
- package/lib/esm/IModelElementCloneContext.js.map +1 -1
- package/lib/esm/IModelHost.d.ts +22 -0
- package/lib/esm/IModelHost.d.ts.map +1 -1
- package/lib/esm/IModelHost.js +9 -0
- package/lib/esm/IModelHost.js.map +1 -1
- package/lib/esm/IModelIncrementalSchemaLocater.js.map +1 -1
- package/lib/esm/IModelJsFs.js.map +1 -1
- package/lib/esm/ImageSourceConversion.js.map +1 -1
- package/lib/esm/IpcHost.js +3 -3
- package/lib/esm/IpcHost.js.map +1 -1
- package/lib/esm/LineStyle.d.ts +47 -7
- package/lib/esm/LineStyle.d.ts.map +1 -1
- package/lib/esm/LineStyle.js +38 -33
- package/lib/esm/LineStyle.js.map +1 -1
- package/lib/esm/LocalHub.js +1 -1
- package/lib/esm/LocalHub.js.map +1 -1
- package/lib/esm/LocalhostIpcHost.js.map +1 -1
- package/lib/esm/LockControl.js.map +1 -1
- package/lib/esm/Material.d.ts +8 -1
- package/lib/esm/Material.d.ts.map +1 -1
- package/lib/esm/Material.js +6 -12
- package/lib/esm/Material.js.map +1 -1
- package/lib/esm/Model.d.ts +59 -20
- package/lib/esm/Model.d.ts.map +1 -1
- package/lib/esm/Model.js +39 -81
- package/lib/esm/Model.js.map +1 -1
- package/lib/esm/NativeAppStorage.js.map +1 -1
- package/lib/esm/NativeHost.js.map +1 -1
- package/lib/esm/NavigationRelationship.js.map +1 -1
- package/lib/esm/PromiseMemoizer.js.map +1 -1
- package/lib/esm/PropertyStore.js.map +1 -1
- package/lib/esm/Relationship.d.ts +72 -7
- package/lib/esm/Relationship.d.ts.map +1 -1
- package/lib/esm/Relationship.js +40 -22
- package/lib/esm/Relationship.js.map +1 -1
- package/lib/esm/RpcBackend.js.map +1 -1
- package/lib/esm/SQLiteDb.js.map +1 -1
- package/lib/esm/Schema.js.map +1 -1
- package/lib/esm/SchemaSync.js +5 -5
- package/lib/esm/SchemaSync.js.map +1 -1
- package/lib/esm/SchemaUtils.js.map +1 -1
- package/lib/esm/SheetIndex.d.ts +9 -0
- package/lib/esm/SheetIndex.d.ts.map +1 -1
- package/lib/esm/SheetIndex.js +38 -35
- package/lib/esm/SheetIndex.js.map +1 -1
- package/lib/esm/SqliteChangesetReader.js.map +1 -1
- package/lib/esm/SqliteStatement.js.map +1 -1
- package/lib/esm/StashManager.js +1 -1
- package/lib/esm/StashManager.js.map +1 -1
- package/lib/esm/Texture.d.ts +6 -0
- package/lib/esm/Texture.d.ts.map +1 -1
- package/lib/esm/Texture.js +6 -14
- package/lib/esm/Texture.js.map +1 -1
- package/lib/esm/TileStorage.js.map +1 -1
- package/lib/esm/TxnManager.d.ts +5 -5
- package/lib/esm/TxnManager.d.ts.map +1 -1
- package/lib/esm/TxnManager.js +23 -7
- package/lib/esm/TxnManager.js.map +1 -1
- package/lib/esm/ViewDefinition.d.ts +21 -1
- package/lib/esm/ViewDefinition.d.ts.map +1 -1
- package/lib/esm/ViewDefinition.js +27 -66
- package/lib/esm/ViewDefinition.js.map +1 -1
- package/lib/esm/ViewStateHydrator.js.map +1 -1
- package/lib/esm/ViewStore.js.map +1 -1
- package/lib/esm/annotations/ElementDrivesTextAnnotation.d.ts +14 -6
- package/lib/esm/annotations/ElementDrivesTextAnnotation.d.ts.map +1 -1
- package/lib/esm/annotations/ElementDrivesTextAnnotation.js +33 -27
- package/lib/esm/annotations/ElementDrivesTextAnnotation.js.map +1 -1
- package/lib/esm/annotations/FrameGeometry.js.map +1 -1
- package/lib/esm/annotations/LeaderGeometry.js.map +1 -1
- package/lib/esm/annotations/TextAnnotationElement.d.ts.map +1 -1
- package/lib/esm/annotations/TextAnnotationElement.js +6 -5
- package/lib/esm/annotations/TextAnnotationElement.js.map +1 -1
- package/lib/esm/annotations/TextAnnotationGeometry.js.map +1 -1
- package/lib/esm/annotations/TextBlockGeometry.js.map +1 -1
- package/lib/esm/annotations/TextBlockLayout.js.map +1 -1
- package/lib/esm/core-backend.d.ts +1 -0
- package/lib/esm/core-backend.d.ts.map +1 -1
- package/lib/esm/core-backend.js +1 -0
- package/lib/esm/core-backend.js.map +1 -1
- package/lib/esm/domains/FunctionalElements.d.ts +6 -2
- package/lib/esm/domains/FunctionalElements.d.ts.map +1 -1
- package/lib/esm/domains/FunctionalElements.js +8 -13
- package/lib/esm/domains/FunctionalElements.js.map +1 -1
- package/lib/esm/domains/FunctionalSchema.js.map +1 -1
- package/lib/esm/domains/GenericElements.d.ts +11 -4
- package/lib/esm/domains/GenericElements.d.ts.map +1 -1
- package/lib/esm/domains/GenericElements.js +13 -24
- package/lib/esm/domains/GenericElements.js.map +1 -1
- package/lib/esm/domains/GenericSchema.js.map +1 -1
- package/lib/esm/internal/ChangesetConflictArgs.js.map +1 -1
- package/lib/esm/internal/ChannelAdmin.d.ts +15 -0
- package/lib/esm/internal/ChannelAdmin.d.ts.map +1 -1
- package/lib/esm/internal/ChannelAdmin.js +6 -4
- package/lib/esm/internal/ChannelAdmin.js.map +1 -1
- package/lib/esm/internal/ElementLRUCache.js.map +1 -1
- package/lib/esm/internal/FontFileImpl.js.map +1 -1
- package/lib/esm/internal/HubMock.js.map +1 -1
- package/lib/esm/internal/IModelDbFontsImpl.js.map +1 -1
- package/lib/esm/internal/IntegrityCheck.js.map +1 -1
- package/lib/esm/internal/NativePlatform.js.map +1 -1
- package/lib/esm/internal/NoLocks.js.map +1 -1
- package/lib/esm/internal/OnlineStatus.js.map +1 -1
- package/lib/esm/internal/ServerBasedLocks.js.map +1 -1
- package/lib/esm/internal/Symbols.d.ts +4 -0
- package/lib/esm/internal/Symbols.d.ts.map +1 -1
- package/lib/esm/internal/Symbols.js +4 -0
- package/lib/esm/internal/Symbols.js.map +1 -1
- package/lib/esm/internal/annotations/fields.d.ts +3 -2
- package/lib/esm/internal/annotations/fields.d.ts.map +1 -1
- package/lib/esm/internal/annotations/fields.js +7 -6
- package/lib/esm/internal/annotations/fields.js.map +1 -1
- package/lib/esm/internal/cross-package.js.map +1 -1
- package/lib/esm/internal/workspace/SettingsEditorImpl.js.map +1 -1
- package/lib/esm/internal/workspace/SettingsImpl.js.map +1 -1
- package/lib/esm/internal/workspace/SettingsSchemasImpl.js.map +1 -1
- package/lib/esm/internal/workspace/WorkspaceImpl.js.map +1 -1
- package/lib/esm/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
- package/lib/esm/rpc/multipart.js.map +1 -1
- package/lib/esm/rpc/tracing.js.map +1 -1
- package/lib/esm/rpc/web/logging.js.map +1 -1
- package/lib/esm/rpc/web/request.js.map +1 -1
- package/lib/esm/rpc/web/response.js.map +1 -1
- package/lib/esm/rpc-impl/DevToolsRpcImpl.js.map +1 -1
- package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -1
- package/lib/esm/rpc-impl/IModelTileRpcImpl.js.map +1 -1
- package/lib/esm/rpc-impl/RpcBriefcaseUtility.d.ts.map +1 -1
- package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
- package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
- package/lib/esm/test/AdvancedEqual.js.map +1 -1
- package/lib/esm/test/AnnotationTestUtils.js.map +1 -1
- package/lib/esm/test/AttachDb.test.js +11 -11
- package/lib/esm/test/AttachDb.test.js.map +1 -1
- package/lib/esm/test/ElementDrivesElement.test.d.ts +20 -19
- package/lib/esm/test/ElementDrivesElement.test.d.ts.map +1 -1
- package/lib/esm/test/ElementDrivesElement.test.js +134 -119
- package/lib/esm/test/ElementDrivesElement.test.js.map +1 -1
- package/lib/esm/test/ElementLRUCache.test.js.map +1 -1
- package/lib/esm/test/GeometryTestUtil.js.map +1 -1
- package/lib/esm/test/IModelHost.test.js +56 -2
- package/lib/esm/test/IModelHost.test.js.map +1 -1
- package/lib/esm/test/IModelTestUtils.d.ts +23 -23
- package/lib/esm/test/IModelTestUtils.d.ts.map +1 -1
- package/lib/esm/test/IModelTestUtils.js +466 -449
- package/lib/esm/test/IModelTestUtils.js.map +1 -1
- package/lib/esm/test/ImageSourceConversion.test.js.map +1 -1
- package/lib/esm/test/IpcHost.test.js.map +1 -1
- package/lib/esm/test/KnownTestLocations.js.map +1 -1
- package/lib/esm/test/PrintElementTree.js.map +1 -1
- package/lib/esm/test/PropertyDb.test.js +2 -2
- package/lib/esm/test/PropertyDb.test.js.map +1 -1
- package/lib/esm/test/RevisionUtility.js.map +1 -1
- package/lib/esm/test/SchemaUtils.test.js +25 -25
- package/lib/esm/test/SchemaUtils.test.js.map +1 -1
- package/lib/esm/test/SequentialLogMatcher.js.map +1 -1
- package/lib/esm/test/SquashSchemaAndDataChanges.test.js +156 -147
- package/lib/esm/test/SquashSchemaAndDataChanges.test.js.map +1 -1
- package/lib/esm/test/TestChangeSetUtility.d.ts.map +1 -1
- package/lib/esm/test/TestChangeSetUtility.js +11 -7
- package/lib/esm/test/TestChangeSetUtility.js.map +1 -1
- package/lib/esm/test/TestEditTxn.d.ts +8 -0
- package/lib/esm/test/TestEditTxn.d.ts.map +1 -0
- package/lib/esm/test/TestEditTxn.js +34 -0
- package/lib/esm/test/TestEditTxn.js.map +1 -0
- package/lib/esm/test/TestUtils.d.ts +1 -0
- package/lib/esm/test/TestUtils.d.ts.map +1 -1
- package/lib/esm/test/TestUtils.js +8 -1
- package/lib/esm/test/TestUtils.js.map +1 -1
- package/lib/esm/test/annotations/Fields.test.js +135 -143
- package/lib/esm/test/annotations/Fields.test.js.map +1 -1
- package/lib/esm/test/annotations/FrameGeometry.test.js.map +1 -1
- package/lib/esm/test/annotations/LeaderGeometry.test.js.map +1 -1
- package/lib/esm/test/annotations/TextAnnotation.test.js +156 -99
- package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
- package/lib/esm/test/annotations/TextBlock.test.js +5 -3
- package/lib/esm/test/annotations/TextBlock.test.js.map +1 -1
- package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.js.map +1 -1
- package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.js.map +1 -1
- package/lib/esm/test/categories/Category.test.js +63 -3
- package/lib/esm/test/categories/Category.test.js.map +1 -1
- package/lib/esm/test/codespec/CodeSpec.test.js +88 -5
- package/lib/esm/test/codespec/CodeSpec.test.js.map +1 -1
- package/lib/esm/test/ecdb/CTE.test.js +88 -88
- package/lib/esm/test/ecdb/CTE.test.js.map +1 -1
- package/lib/esm/test/ecdb/ConcurrentQuery.test.js +19 -19
- package/lib/esm/test/ecdb/ConcurrentQuery.test.js.map +1 -1
- package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js +15 -15
- package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECDb.test.js +72 -72
- package/lib/esm/test/ecdb/ECDb.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECDbTestHelper.js.map +1 -1
- package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlAst.test.js +68 -67
- package/lib/esm/test/ecdb/ECSqlAst.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlQuery.test.js +6 -6
- package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlStatement.test.js +332 -333
- package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlSyncReader.test.js.map +1 -1
- package/lib/esm/test/ecdb/QueryReaders.test.js +47 -44
- package/lib/esm/test/ecdb/QueryReaders.test.js.map +1 -1
- package/lib/esm/test/ecdb/SqliteStatement.test.js +2 -2
- package/lib/esm/test/ecdb/SqliteStatement.test.js.map +1 -1
- package/lib/esm/test/ecsql/dataset/ECSqlDatasets.d.ts.map +1 -1
- package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js +30 -28
- package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js.map +1 -1
- package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js +21 -21
- package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js.map +1 -1
- package/lib/esm/test/ecsql/src/ECSqlTestParser.js.map +1 -1
- package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -1
- package/lib/esm/test/element/DeleteDefinitionElements.test.js +159 -143
- package/lib/esm/test/element/DeleteDefinitionElements.test.js.map +1 -1
- package/lib/esm/test/element/ElementAspect.test.js +90 -82
- package/lib/esm/test/element/ElementAspect.test.js.map +1 -1
- package/lib/esm/test/element/ElementDependencyGraph.test.d.ts.map +1 -1
- package/lib/esm/test/element/ElementDependencyGraph.test.js +51 -43
- package/lib/esm/test/element/ElementDependencyGraph.test.js.map +1 -1
- package/lib/esm/test/element/ElementRoundTrip.test.js +176 -177
- package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -1
- package/lib/esm/test/element/ExcludedElements.test.js +2 -2
- package/lib/esm/test/element/ExcludedElements.test.js.map +1 -1
- package/lib/esm/test/element/ExternalSource.test.js +40 -38
- package/lib/esm/test/element/ExternalSource.test.js.map +1 -1
- package/lib/esm/test/element/NullStructArray.test.js +23 -22
- package/lib/esm/test/element/NullStructArray.test.js.map +1 -1
- package/lib/esm/test/element/ProjectInformationRecord.test.js +5 -2
- package/lib/esm/test/element/ProjectInformationRecord.test.js.map +1 -1
- package/lib/esm/test/element/SheetInformationAspect.test.js +43 -11
- package/lib/esm/test/element/SheetInformationAspect.test.js.map +1 -1
- package/lib/esm/test/element/UrlLink.test.js +2 -2
- package/lib/esm/test/element/UrlLink.test.js.map +1 -1
- package/lib/esm/test/font/FontFile.test.js.map +1 -1
- package/lib/esm/test/font/IModelDbFonts.test.js +87 -73
- package/lib/esm/test/font/IModelDbFonts.test.js.map +1 -1
- package/lib/esm/test/hubaccess/ApplyChangeset.test.js +194 -155
- package/lib/esm/test/hubaccess/ApplyChangeset.test.js.map +1 -1
- package/lib/esm/test/hubaccess/BriefcaseManager.test.js +2 -4
- package/lib/esm/test/hubaccess/BriefcaseManager.test.js.map +1 -1
- package/lib/esm/test/hubaccess/CheckpointManager.test.js.map +1 -1
- package/lib/esm/test/hubaccess/Rebase.test.js +369 -303
- package/lib/esm/test/hubaccess/Rebase.test.js.map +1 -1
- package/lib/esm/test/hubaccess/SemanticRebase.test.js +467 -392
- package/lib/esm/test/hubaccess/SemanticRebase.test.js.map +1 -1
- package/lib/esm/test/imageData.js.map +1 -1
- package/lib/esm/test/imodel/Code.test.js +31 -31
- package/lib/esm/test/imodel/Code.test.js.map +1 -1
- package/lib/esm/test/imodel/ElementTreeWalker.test.js +57 -48
- package/lib/esm/test/imodel/ElementTreeWalker.test.js.map +1 -1
- package/lib/esm/test/imodel/GetTextureImage.test.js.map +1 -1
- package/lib/esm/test/imodel/IModel.test.js +463 -388
- package/lib/esm/test/imodel/IModel.test.js.map +1 -1
- package/lib/esm/test/imodel/ProjectExtents.test.js +2 -2
- package/lib/esm/test/imodel/ProjectExtents.test.js.map +1 -1
- package/lib/esm/test/imodel/SchemaXmlImport.test.js +13 -13
- package/lib/esm/test/imodel/SchemaXmlImport.test.js.map +1 -1
- package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.js.map +1 -1
- package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.js.map +1 -1
- package/lib/esm/test/incrementalSchemaLocater/TestContext.d.ts.map +1 -1
- package/lib/esm/test/incrementalSchemaLocater/TestContext.js +2 -2
- package/lib/esm/test/incrementalSchemaLocater/TestContext.js.map +1 -1
- package/lib/esm/test/index.d.ts +1 -0
- package/lib/esm/test/index.d.ts.map +1 -1
- package/lib/esm/test/index.js +1 -0
- package/lib/esm/test/index.js.map +1 -1
- package/lib/esm/test/misc/DevTools.test.js.map +1 -1
- package/lib/esm/test/misc/EntitySubClasses.test.js.map +1 -1
- package/lib/esm/test/misc/GeoServices.test.js.map +1 -1
- package/lib/esm/test/misc/PromiseMemoizer.test.js.map +1 -1
- package/lib/esm/test/native/DgnDbWorker.test.js.map +1 -1
- package/lib/esm/test/rpc/response.test.js.map +1 -1
- package/lib/esm/test/schema/ClassRegistry.test.js +122 -121
- package/lib/esm/test/schema/ClassRegistry.test.js.map +1 -1
- package/lib/esm/test/schema/FunctionalDomain.test.js +36 -34
- package/lib/esm/test/schema/FunctionalDomain.test.js.map +1 -1
- package/lib/esm/test/schema/GenericDomain.test.js +114 -94
- package/lib/esm/test/schema/GenericDomain.test.js.map +1 -1
- package/lib/esm/test/schema/IModelSchemaContext.test.js +11 -10
- package/lib/esm/test/schema/IModelSchemaContext.test.js.map +1 -1
- package/lib/esm/test/schema/SchemaImportCallbacks.test.js +226 -211
- package/lib/esm/test/schema/SchemaImportCallbacks.test.js.map +1 -1
- package/lib/esm/test/sheetindex/SheetIndex.test.d.ts +1 -3
- package/lib/esm/test/sheetindex/SheetIndex.test.d.ts.map +1 -1
- package/lib/esm/test/sheetindex/SheetIndex.test.js +312 -247
- package/lib/esm/test/sheetindex/SheetIndex.test.js.map +1 -1
- package/lib/esm/test/standalone/ChangeMerge.test.js +101 -82
- package/lib/esm/test/standalone/ChangeMerge.test.js.map +1 -1
- package/lib/esm/test/standalone/ChangesetReader.test.js +242 -213
- package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
- package/lib/esm/test/standalone/CustomViewState3dCreator.test.js.map +1 -1
- package/lib/esm/test/standalone/DisplayStyle.test.js +43 -40
- package/lib/esm/test/standalone/DisplayStyle.test.js.map +1 -1
- package/lib/esm/test/standalone/Drawing.test.js +4 -3
- package/lib/esm/test/standalone/Drawing.test.js.map +1 -1
- package/lib/esm/test/standalone/EditTxn.test.d.ts +2 -0
- package/lib/esm/test/standalone/EditTxn.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/EditTxn.test.js +219 -0
- package/lib/esm/test/standalone/EditTxn.test.js.map +1 -0
- package/lib/esm/test/standalone/ElementGraphics.test.js.map +1 -1
- package/lib/esm/test/standalone/ElementMesh.test.js +16 -13
- package/lib/esm/test/standalone/ElementMesh.test.js.map +1 -1
- package/lib/esm/test/standalone/ExportGraphics.test.js +40 -34
- package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -1
- package/lib/esm/test/standalone/GeometryChangeEvents.test.js +11 -15
- package/lib/esm/test/standalone/GeometryChangeEvents.test.js.map +1 -1
- package/lib/esm/test/standalone/GeometryStream.test.js +212 -165
- package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -1
- package/lib/esm/test/standalone/HubMock.test.js +31 -25
- package/lib/esm/test/standalone/HubMock.test.js.map +1 -1
- package/lib/esm/test/standalone/IModelLimits.test.js +11 -8
- package/lib/esm/test/standalone/IModelLimits.test.js.map +1 -1
- package/lib/esm/test/standalone/IModelWrite.test.d.ts +2 -2
- package/lib/esm/test/standalone/IModelWrite.test.d.ts.map +1 -1
- package/lib/esm/test/standalone/IModelWrite.test.js +211 -169
- package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -1
- package/lib/esm/test/standalone/ITwinWorkspace.test.js.map +1 -1
- package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js +25 -22
- package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js.map +1 -1
- package/lib/esm/test/standalone/IntegrityCheck.test.js +20 -18
- package/lib/esm/test/standalone/IntegrityCheck.test.js.map +1 -1
- package/lib/esm/test/standalone/MergeConflict.test.d.ts +2 -2
- package/lib/esm/test/standalone/MergeConflict.test.d.ts.map +1 -1
- package/lib/esm/test/standalone/MergeConflict.test.js +49 -33
- package/lib/esm/test/standalone/MergeConflict.test.js.map +1 -1
- package/lib/esm/test/standalone/NativeAppStorage.test.js.map +1 -1
- package/lib/esm/test/standalone/RenderMaterialElement.test.js +5 -5
- package/lib/esm/test/standalone/RenderMaterialElement.test.js.map +1 -1
- package/lib/esm/test/standalone/RenderTimeline.test.js +3 -2
- package/lib/esm/test/standalone/RenderTimeline.test.js.map +1 -1
- package/lib/esm/test/standalone/SQLiteDb.test.js.map +1 -1
- package/lib/esm/test/standalone/SchemaUtils.test.js.map +1 -1
- package/lib/esm/test/standalone/SectionDrawing.test.js +7 -7
- package/lib/esm/test/standalone/SectionDrawing.test.js.map +1 -1
- package/lib/esm/test/standalone/ServerBasedLocks.test.js +21 -19
- package/lib/esm/test/standalone/ServerBasedLocks.test.js.map +1 -1
- package/lib/esm/test/standalone/Setting.test.js.map +1 -1
- package/lib/esm/test/standalone/Settings.test.js +7 -4
- package/lib/esm/test/standalone/Settings.test.js.map +1 -1
- package/lib/esm/test/standalone/SettingsSchemas.test.js +2 -1
- package/lib/esm/test/standalone/SettingsSchemas.test.js.map +1 -1
- package/lib/esm/test/standalone/SnapshotDb.test.js +3 -1
- package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -1
- package/lib/esm/test/standalone/StandaloneDb.test.js +27 -26
- package/lib/esm/test/standalone/StandaloneDb.test.js.map +1 -1
- package/lib/esm/test/standalone/Texture.test.js +5 -4
- package/lib/esm/test/standalone/Texture.test.js.map +1 -1
- package/lib/esm/test/standalone/TileCache.test.d.ts.map +1 -1
- package/lib/esm/test/standalone/TileCache.test.js +5 -3
- package/lib/esm/test/standalone/TileCache.test.js.map +1 -1
- package/lib/esm/test/standalone/TileTree.test.js +35 -31
- package/lib/esm/test/standalone/TileTree.test.js.map +1 -1
- package/lib/esm/test/standalone/TxnManager.test.js +700 -653
- package/lib/esm/test/standalone/TxnManager.test.js.map +1 -1
- package/lib/esm/test/standalone/ViewDefinition.test.js +295 -229
- package/lib/esm/test/standalone/ViewDefinition.test.js.map +1 -1
- package/lib/esm/test/standalone/ViewStoreDb.test.js.map +1 -1
- package/lib/esm/test/standalone/Workspace.test.js +25 -23
- package/lib/esm/test/standalone/Workspace.test.js.map +1 -1
- package/lib/esm/test/standalone/iModelDb.test.js.map +1 -1
- package/lib/esm/test/workspace/SettingsDb.test.js.map +1 -1
- package/lib/esm/workspace/Settings.js.map +1 -1
- package/lib/esm/workspace/SettingsDb.js.map +1 -1
- package/lib/esm/workspace/SettingsEditor.js.map +1 -1
- package/lib/esm/workspace/SettingsSchemas.js.map +1 -1
- package/lib/esm/workspace/Workspace.js.map +1 -1
- package/lib/esm/workspace/WorkspaceEditor.js.map +1 -1
- package/package.json +13 -13
|
@@ -8,11 +8,13 @@ import { assert, expect } from "chai";
|
|
|
8
8
|
import * as chaiAsPromised from "chai-as-promised";
|
|
9
9
|
import * as path from "path";
|
|
10
10
|
import { BeEvent, DbResult, Guid, Id64, IModelStatus, omit } from "@itwin/core-bentley";
|
|
11
|
+
import { withEditTxn } from "../EditTxn";
|
|
11
12
|
import { Base64EncodedString, Code, CodeScopeSpec, ColorDef, Environment, FontType, GeometryParams, GeometryStreamBuilder, ImageSourceFormat, IModel, IModelError, IModelReadRpcInterface, IModelVersion, PlanProjectionSettings, RelatedElement, RpcConfiguration, RpcManager, RpcPendingResponse, SkyBoxImageType, SubCategoryAppearance, SubCategoryOverride, SyncMode, } from "@itwin/core-common";
|
|
12
13
|
import { Box, Cone, LineString3d, Point2d, Point3d, Range2d, Range3d, StandardViewIndex, Vector3d, YawPitchRollAngles } from "@itwin/core-geometry";
|
|
13
14
|
import { CheckpointManager, V2CheckpointManager } from "../CheckpointManager";
|
|
14
15
|
import { ClassRegistry } from "../ClassRegistry";
|
|
15
16
|
import { _nativeDb, AuxCoordSystem2d, BriefcaseDb, BriefcaseLocalValue, BriefcaseManager, CategorySelector, ChannelControl, DisplayStyle2d, DisplayStyle3d, DrawingCategory, DrawingViewDefinition, Element, ElementOwnsChildElements, ElementOwnsMultiAspects, ElementOwnsUniqueAspect, ExternalSource, ExternalSourceIsInRepository, FunctionalModel, FunctionalSchema, GroupModel, IModelDb, IModelHost, IModelJsFs, InformationPartitionElement, Model, ModelSelector, OrthographicViewDefinition, PhysicalModel, PhysicalObject, PhysicalPartition, RenderMaterialElement, SnapshotDb, SpatialCategory, SubCategory, SubjectOwnsPartitionElements, Texture, ViewDefinition, } from "../core-backend";
|
|
17
|
+
import { _hubAccess } from "../internal/Symbols";
|
|
16
18
|
import { DefinitionPartition, Drawing, DrawingGraphic, GeometryPart, LinkElement, PhysicalElement, RepositoryLink, Subject } from "../Element";
|
|
17
19
|
import { DefinitionModel, DocumentListModel, DrawingModel, InformationRecordModel, SpatialLocationModel } from "../Model";
|
|
18
20
|
import { DrawingGraphicRepresentsElement, ElementDrivesElement } from "../Relationship";
|
|
@@ -20,7 +22,6 @@ import { RpcBriefcaseUtility } from "../rpc-impl/RpcBriefcaseUtility";
|
|
|
20
22
|
import { Schema, Schemas } from "../Schema";
|
|
21
23
|
import { HubMock } from "../internal/HubMock";
|
|
22
24
|
import { KnownTestLocations } from "./KnownTestLocations";
|
|
23
|
-
import { _hubAccess } from "../internal/Symbols";
|
|
24
25
|
chai.use(chaiAsPromised);
|
|
25
26
|
/* eslint-disable @typescript-eslint/explicit-member-accessibility */
|
|
26
27
|
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
@@ -34,15 +35,15 @@ export class TestElementDrivesElement extends ElementDrivesElement {
|
|
|
34
35
|
static get className() { return "TestElementDrivesElement"; }
|
|
35
36
|
static rootChanged = new BeEvent();
|
|
36
37
|
static deletedDependency = new BeEvent();
|
|
37
|
-
static
|
|
38
|
-
static
|
|
38
|
+
static onRootChangedArg(arg) { this.rootChanged.raiseEvent(arg); }
|
|
39
|
+
static onDeletedDependencyArg(arg) { this.deletedDependency.raiseEvent(arg); }
|
|
39
40
|
}
|
|
40
41
|
export class TestPhysicalObject extends PhysicalElement {
|
|
41
42
|
static get className() { return "TestPhysicalObject"; }
|
|
42
43
|
static beforeOutputsHandled = new BeEvent();
|
|
43
44
|
static allInputsHandled = new BeEvent();
|
|
44
|
-
static
|
|
45
|
-
static
|
|
45
|
+
static onBeforeOutputsHandledArg(arg) { this.beforeOutputsHandled.raiseEvent(arg); }
|
|
46
|
+
static onAllInputsHandledArg(arg) { this.allInputsHandled.raiseEvent(arg); }
|
|
46
47
|
}
|
|
47
48
|
/** the types of users available for tests */
|
|
48
49
|
export var TestUserType;
|
|
@@ -58,6 +59,10 @@ export var TestUserType;
|
|
|
58
59
|
*/
|
|
59
60
|
export class HubWrappers {
|
|
60
61
|
static get hubMock() { return HubMock; }
|
|
62
|
+
static isTransientBriefcaseOpenError(error) {
|
|
63
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
64
|
+
return message.includes("EBUSY") || message.includes("EPERM") || message.includes("database is locked");
|
|
65
|
+
}
|
|
61
66
|
static async getAccessToken(user) {
|
|
62
67
|
return TestUserType[user];
|
|
63
68
|
}
|
|
@@ -102,14 +107,24 @@ export class HubWrappers {
|
|
|
102
107
|
}
|
|
103
108
|
/** Helper to open a briefcase db directly with the BriefcaseManager API */
|
|
104
109
|
static async downloadAndOpenBriefcase(args) {
|
|
105
|
-
const
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
110
|
+
const maxAttempts = 10;
|
|
111
|
+
for (let attempt = 1;; attempt++) {
|
|
112
|
+
try {
|
|
113
|
+
const props = await BriefcaseManager.downloadBriefcase(args);
|
|
114
|
+
if (args.noLock) {
|
|
115
|
+
const briefcase = await BriefcaseDb.open({ fileName: props.fileName });
|
|
116
|
+
briefcase[_nativeDb].saveLocalValue(BriefcaseLocalValue.NoLocking, "true");
|
|
117
|
+
briefcase[_nativeDb].saveChanges();
|
|
118
|
+
briefcase.close();
|
|
119
|
+
}
|
|
120
|
+
return await BriefcaseDb.open({ fileName: props.fileName });
|
|
121
|
+
}
|
|
122
|
+
catch (error) {
|
|
123
|
+
if (attempt >= maxAttempts || !this.isTransientBriefcaseOpenError(error))
|
|
124
|
+
throw error;
|
|
125
|
+
await new Promise((resolve) => setTimeout(resolve, attempt * 250));
|
|
126
|
+
}
|
|
111
127
|
}
|
|
112
|
-
return BriefcaseDb.open({ fileName: props.fileName });
|
|
113
128
|
}
|
|
114
129
|
/** Opens the specific iModel as a Briefcase through the same workflow the IModelReadRpc.getConnectionProps method will use. Replicates the way a frontend would open the iModel. */
|
|
115
130
|
static async openBriefcaseUsingRpc(args) {
|
|
@@ -291,8 +306,8 @@ export class IModelTestUtils {
|
|
|
291
306
|
return { id: result };
|
|
292
307
|
}
|
|
293
308
|
/** Create and insert a PhysicalPartition element (in the repositoryModel) and an associated PhysicalModel. */
|
|
294
|
-
static createAndInsertPhysicalPartition(
|
|
295
|
-
const model = parentId ?
|
|
309
|
+
static createAndInsertPhysicalPartition(txn, newModelCode, parentId) {
|
|
310
|
+
const model = parentId ? txn.iModel.elements.getElement(parentId).model : IModel.repositoryModelId;
|
|
296
311
|
const parent = new SubjectOwnsPartitionElements(parentId || IModel.rootSubjectId);
|
|
297
312
|
const modeledElementProps = {
|
|
298
313
|
classFullName: PhysicalPartition.classFullName,
|
|
@@ -300,12 +315,12 @@ export class IModelTestUtils {
|
|
|
300
315
|
model,
|
|
301
316
|
code: newModelCode,
|
|
302
317
|
};
|
|
303
|
-
const modeledElement =
|
|
304
|
-
return
|
|
318
|
+
const modeledElement = txn.iModel.elements.createElement(modeledElementProps);
|
|
319
|
+
return txn.insertElement(modeledElement.toJSON());
|
|
305
320
|
}
|
|
306
321
|
/** Create and insert a PhysicalPartition element (in the repositoryModel) and an associated PhysicalModel. */
|
|
307
|
-
static async createAndInsertPhysicalPartitionAsync(
|
|
308
|
-
const model = parentId ?
|
|
322
|
+
static async createAndInsertPhysicalPartitionAsync(txn, newModelCode, parentId) {
|
|
323
|
+
const model = parentId ? txn.iModel.elements.getElement(parentId).model : IModel.repositoryModelId;
|
|
309
324
|
const parent = new SubjectOwnsPartitionElements(parentId || IModel.rootSubjectId);
|
|
310
325
|
const modeledElementProps = {
|
|
311
326
|
classFullName: PhysicalPartition.classFullName,
|
|
@@ -313,23 +328,25 @@ export class IModelTestUtils {
|
|
|
313
328
|
model,
|
|
314
329
|
code: newModelCode,
|
|
315
330
|
};
|
|
316
|
-
const modeledElement =
|
|
317
|
-
await
|
|
318
|
-
return
|
|
331
|
+
const modeledElement = txn.iModel.elements.createElement(modeledElementProps);
|
|
332
|
+
await txn.iModel.locks.acquireLocks({ shared: model });
|
|
333
|
+
return txn.insertElement(modeledElement.toJSON());
|
|
319
334
|
}
|
|
320
335
|
/** Create and insert a PhysicalPartition element (in the repositoryModel) and an associated PhysicalModel. */
|
|
321
|
-
static createAndInsertPhysicalModel(
|
|
322
|
-
const newModel =
|
|
323
|
-
const newModelId =
|
|
336
|
+
static createAndInsertPhysicalModel(txn, modeledElementRef, privateModel = false) {
|
|
337
|
+
const newModel = txn.iModel.models.createModel({ modeledElement: modeledElementRef, classFullName: PhysicalModel.classFullName, isPrivate: privateModel });
|
|
338
|
+
const newModelId = txn.insertModel(newModel.toJSON());
|
|
339
|
+
newModel.id = newModelId;
|
|
324
340
|
assert.isTrue(Id64.isValidId64(newModelId));
|
|
325
341
|
assert.isTrue(Id64.isValidId64(newModel.id));
|
|
326
342
|
assert.deepEqual(newModelId, newModel.id);
|
|
327
343
|
return newModelId;
|
|
328
344
|
}
|
|
329
345
|
/** Create and insert a PhysicalPartition element (in the repositoryModel) and an associated PhysicalModel. */
|
|
330
|
-
static async createAndInsertPhysicalModelAsync(
|
|
331
|
-
const newModel =
|
|
332
|
-
const newModelId = newModel.
|
|
346
|
+
static async createAndInsertPhysicalModelAsync(txn, modeledElementRef, privateModel = false) {
|
|
347
|
+
const newModel = txn.iModel.models.createModel({ modeledElement: modeledElementRef, classFullName: PhysicalModel.classFullName, isPrivate: privateModel });
|
|
348
|
+
const newModelId = txn.insertModel(newModel.toJSON());
|
|
349
|
+
newModel.id = newModelId;
|
|
333
350
|
assert.isTrue(Id64.isValidId64(newModelId));
|
|
334
351
|
assert.isTrue(Id64.isValidId64(newModel.id));
|
|
335
352
|
assert.deepEqual(newModelId, newModel.id);
|
|
@@ -339,25 +356,25 @@ export class IModelTestUtils {
|
|
|
339
356
|
* Create and insert a PhysicalPartition element (in the repositoryModel) and an associated PhysicalModel.
|
|
340
357
|
* @return [modeledElementId, modelId]
|
|
341
358
|
*/
|
|
342
|
-
static createAndInsertPhysicalPartitionAndModel(
|
|
343
|
-
const eid = IModelTestUtils.createAndInsertPhysicalPartition(
|
|
359
|
+
static createAndInsertPhysicalPartitionAndModel(txn, newModelCode, privateModel = false, parent) {
|
|
360
|
+
const eid = IModelTestUtils.createAndInsertPhysicalPartition(txn, newModelCode, parent);
|
|
344
361
|
const modeledElementRef = new RelatedElement({ id: eid });
|
|
345
|
-
const mid = IModelTestUtils.createAndInsertPhysicalModel(
|
|
362
|
+
const mid = IModelTestUtils.createAndInsertPhysicalModel(txn, modeledElementRef, privateModel);
|
|
346
363
|
return [eid, mid];
|
|
347
364
|
}
|
|
348
365
|
/**
|
|
349
366
|
* Create and insert a PhysicalPartition element (in the repositoryModel) and an associated PhysicalModel.
|
|
350
367
|
* @return [modeledElementId, modelId]
|
|
351
368
|
*/
|
|
352
|
-
static async createAndInsertPhysicalPartitionAndModelAsync(
|
|
353
|
-
const eid = await IModelTestUtils.createAndInsertPhysicalPartitionAsync(
|
|
369
|
+
static async createAndInsertPhysicalPartitionAndModelAsync(txn, newModelCode, privateModel = false, parentId) {
|
|
370
|
+
const eid = await IModelTestUtils.createAndInsertPhysicalPartitionAsync(txn, newModelCode, parentId);
|
|
354
371
|
const modeledElementRef = new RelatedElement({ id: eid });
|
|
355
|
-
const mid = await IModelTestUtils.createAndInsertPhysicalModelAsync(
|
|
372
|
+
const mid = await IModelTestUtils.createAndInsertPhysicalModelAsync(txn, modeledElementRef, privateModel);
|
|
356
373
|
return [eid, mid];
|
|
357
374
|
}
|
|
358
375
|
/** Create and insert a Drawing Partition element (in the repositoryModel). */
|
|
359
|
-
static createAndInsertDrawingPartition(
|
|
360
|
-
const model = parentId ?
|
|
376
|
+
static createAndInsertDrawingPartition(txn, newModelCode, parentId) {
|
|
377
|
+
const model = parentId ? txn.iModel.elements.getElement(parentId).model : IModel.repositoryModelId;
|
|
361
378
|
const parent = new SubjectOwnsPartitionElements(parentId || IModel.rootSubjectId);
|
|
362
379
|
const modeledElementProps = {
|
|
363
380
|
classFullName: Drawing.classFullName,
|
|
@@ -365,13 +382,14 @@ export class IModelTestUtils {
|
|
|
365
382
|
model,
|
|
366
383
|
code: newModelCode,
|
|
367
384
|
};
|
|
368
|
-
const modeledElement =
|
|
369
|
-
return
|
|
385
|
+
const modeledElement = txn.iModel.elements.createElement(modeledElementProps);
|
|
386
|
+
return txn.insertElement(modeledElement.toJSON());
|
|
370
387
|
}
|
|
371
388
|
/** Create and insert a DrawingModel associated with Drawing Partition. */
|
|
372
|
-
static createAndInsertDrawingModel(
|
|
373
|
-
const newModel =
|
|
374
|
-
const newModelId = newModel.
|
|
389
|
+
static createAndInsertDrawingModel(txn, modeledElementRef, privateModel = false) {
|
|
390
|
+
const newModel = txn.iModel.models.createModel({ modeledElement: modeledElementRef, classFullName: DrawingModel.classFullName, isPrivate: privateModel });
|
|
391
|
+
const newModelId = txn.insertModel(newModel.toJSON());
|
|
392
|
+
newModel.id = newModelId;
|
|
375
393
|
assert.isTrue(Id64.isValidId64(newModelId));
|
|
376
394
|
assert.isTrue(Id64.isValidId64(newModel.id));
|
|
377
395
|
assert.deepEqual(newModelId, newModel.id);
|
|
@@ -381,10 +399,10 @@ export class IModelTestUtils {
|
|
|
381
399
|
* Create and insert a Drawing Partition element (in the repositoryModel) and an associated DrawingModel.
|
|
382
400
|
* @return [modeledElementId, modelId]
|
|
383
401
|
*/
|
|
384
|
-
static createAndInsertDrawingPartitionAndModel(
|
|
385
|
-
const eid = IModelTestUtils.createAndInsertDrawingPartition(
|
|
402
|
+
static createAndInsertDrawingPartitionAndModel(txn, newModelCode, privateModel = false, parent) {
|
|
403
|
+
const eid = IModelTestUtils.createAndInsertDrawingPartition(txn, newModelCode, parent);
|
|
386
404
|
const modeledElementRef = new RelatedElement({ id: eid });
|
|
387
|
-
const mid = IModelTestUtils.createAndInsertDrawingModel(
|
|
405
|
+
const mid = IModelTestUtils.createAndInsertDrawingModel(txn, modeledElementRef, privateModel);
|
|
388
406
|
return [eid, mid];
|
|
389
407
|
}
|
|
390
408
|
static getUniqueSpatialCategoryCode(scopeModel, newCodeBaseValue) {
|
|
@@ -475,7 +493,7 @@ export class IModelTestUtils {
|
|
|
475
493
|
transp: 0,
|
|
476
494
|
invisible: false,
|
|
477
495
|
};
|
|
478
|
-
return SpatialCategory.insert(
|
|
496
|
+
return withEditTxn(iModelDb, (txn) => SpatialCategory.insert(txn, modelId, categoryName, appearance));
|
|
479
497
|
}
|
|
480
498
|
static createBoxes(subCategoryIds) {
|
|
481
499
|
const length = 1.0;
|
|
@@ -524,12 +542,6 @@ export class IModelTestUtils {
|
|
|
524
542
|
]));
|
|
525
543
|
return geometryStreamBuilder.geometryStream;
|
|
526
544
|
}
|
|
527
|
-
static insertTextureElement(iModelDb, modelId, textureName) {
|
|
528
|
-
// This is an encoded png containing a 3x3 square with white in top left pixel, blue in middle pixel, and green in bottom right pixel. The rest of the square is red.
|
|
529
|
-
const pngData = [137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 3, 0, 0, 0, 3, 8, 2, 0, 0, 0, 217, 74, 34, 232, 0, 0, 0, 1, 115, 82, 71, 66, 0, 174, 206, 28, 233, 0, 0, 0, 4, 103, 65, 77, 65, 0, 0, 177, 143, 11, 252, 97, 5, 0, 0, 0, 9, 112, 72, 89, 115, 0, 0, 14, 195, 0, 0, 14, 195, 1, 199, 111, 168, 100, 0, 0, 0, 24, 73, 68, 65, 84, 24, 87, 99, 248, 15, 4, 12, 12, 64, 4, 198, 64, 46, 132, 5, 162, 254, 51, 0, 0, 195, 90, 10, 246, 127, 175, 154, 145, 0, 0, 0, 0, 73, 69, 78, 68, 174, 66, 96, 130];
|
|
530
|
-
const textureData = Buffer.from(pngData).toString("base64");
|
|
531
|
-
return Texture.insertTexture(iModelDb, modelId, textureName, ImageSourceFormat.Png, textureData, `Description for ${textureName}`);
|
|
532
|
-
}
|
|
533
545
|
static queryByUserLabel(iModelDb, userLabel) {
|
|
534
546
|
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
535
547
|
return iModelDb.withPreparedStatement(`SELECT ECInstanceId FROM ${Element.classFullName} WHERE UserLabel=:userLabel`, (statement) => {
|
|
@@ -544,17 +556,17 @@ export class IModelTestUtils {
|
|
|
544
556
|
return DbResult.BE_SQLITE_ROW === statement.step() ? statement.getValue(0).getId() : Id64.invalid;
|
|
545
557
|
});
|
|
546
558
|
}
|
|
547
|
-
static insertRepositoryLink(
|
|
559
|
+
static insertRepositoryLink(txn, codeValue, url, format) {
|
|
548
560
|
const repositoryLinkProps = {
|
|
549
561
|
classFullName: RepositoryLink.classFullName,
|
|
550
562
|
model: IModel.repositoryModelId,
|
|
551
|
-
code: LinkElement.createCode(
|
|
563
|
+
code: LinkElement.createCode(txn.iModel, IModel.repositoryModelId, codeValue),
|
|
552
564
|
url,
|
|
553
565
|
format,
|
|
554
566
|
};
|
|
555
|
-
return
|
|
567
|
+
return txn.insertElement(repositoryLinkProps);
|
|
556
568
|
}
|
|
557
|
-
static insertExternalSource(
|
|
569
|
+
static insertExternalSource(txn, repositoryId, userLabel) {
|
|
558
570
|
const externalSourceProps = {
|
|
559
571
|
classFullName: ExternalSource.classFullName,
|
|
560
572
|
model: IModel.repositoryModelId,
|
|
@@ -564,7 +576,7 @@ export class IModelTestUtils {
|
|
|
564
576
|
connectorName: "Connector",
|
|
565
577
|
connectorVersion: "0.0.1",
|
|
566
578
|
};
|
|
567
|
-
return
|
|
579
|
+
return txn.insertElement(externalSourceProps);
|
|
568
580
|
}
|
|
569
581
|
static dumpIModelInfo(iModelDb) {
|
|
570
582
|
const outputFileName = `${iModelDb.pathName}.info.txt`;
|
|
@@ -647,403 +659,408 @@ export class ExtensiveTestScenario {
|
|
|
647
659
|
expect(arialFontId).greaterThan(0);
|
|
648
660
|
// Initialize project extents
|
|
649
661
|
const projectExtents = new Range3d(-1000, -1000, -1000, 1000, 1000, 1000);
|
|
650
|
-
sourceDb
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
const physicalObjectId1 = sourceDb.elements.insertElement(physicalObjectProps1);
|
|
757
|
-
assert.isTrue(Id64.isValidId64(physicalObjectId1));
|
|
758
|
-
// Insert PhysicalObject1 children
|
|
759
|
-
const childObjectProps1A = physicalObjectProps1;
|
|
760
|
-
childObjectProps1A.userLabel = "ChildObject1A";
|
|
761
|
-
childObjectProps1A.parent = new ElementOwnsChildElements(physicalObjectId1);
|
|
762
|
-
childObjectProps1A.placement.origin = Point3d.create(0, 1, 1);
|
|
763
|
-
const childObjectId1A = sourceDb.elements.insertElement(childObjectProps1A);
|
|
764
|
-
assert.isTrue(Id64.isValidId64(childObjectId1A));
|
|
765
|
-
const childObjectProps1B = childObjectProps1A;
|
|
766
|
-
childObjectProps1B.userLabel = "ChildObject1B";
|
|
767
|
-
childObjectProps1B.placement.origin = Point3d.create(1, 0, 1);
|
|
768
|
-
const childObjectId1B = sourceDb.elements.insertElement(childObjectProps1B);
|
|
769
|
-
assert.isTrue(Id64.isValidId64(childObjectId1B));
|
|
770
|
-
// Insert PhysicalObject2
|
|
771
|
-
const physicalObjectProps2 = {
|
|
772
|
-
classFullName: PhysicalObject.classFullName,
|
|
773
|
-
model: physicalModelId,
|
|
774
|
-
category: sourcePhysicalCategoryId,
|
|
775
|
-
code: Code.createEmpty(),
|
|
776
|
-
userLabel: "PhysicalObject2",
|
|
777
|
-
geom: IModelTestUtils.createBox(Point3d.create(2, 2, 2)),
|
|
778
|
-
placement: {
|
|
779
|
-
origin: Point3d.create(2, 2, 2),
|
|
780
|
-
angles: YawPitchRollAngles.createDegrees(0, 0, 0),
|
|
781
|
-
},
|
|
782
|
-
};
|
|
783
|
-
const physicalObjectId2 = sourceDb.elements.insertElement(physicalObjectProps2);
|
|
784
|
-
assert.isTrue(Id64.isValidId64(physicalObjectId2));
|
|
785
|
-
// Insert PhysicalObject3
|
|
786
|
-
const physicalObjectProps3 = {
|
|
787
|
-
classFullName: PhysicalObject.classFullName,
|
|
788
|
-
model: physicalModelId,
|
|
789
|
-
category: sourcePhysicalCategoryId,
|
|
790
|
-
code: Code.createEmpty(),
|
|
791
|
-
federationGuid: ExtensiveTestScenario.federationGuid3,
|
|
792
|
-
userLabel: "PhysicalObject3",
|
|
793
|
-
};
|
|
794
|
-
const physicalObjectId3 = sourceDb.elements.insertElement(physicalObjectProps3);
|
|
795
|
-
assert.isTrue(Id64.isValidId64(physicalObjectId3));
|
|
796
|
-
// Insert PhysicalObject4
|
|
797
|
-
const physicalObjectProps4 = {
|
|
798
|
-
classFullName: PhysicalObject.classFullName,
|
|
799
|
-
model: physicalModelId,
|
|
800
|
-
category: spatialCategoryId,
|
|
801
|
-
code: Code.createEmpty(),
|
|
802
|
-
userLabel: "PhysicalObject4",
|
|
803
|
-
geom: IModelTestUtils.createBoxes([subCategoryId, filteredSubCategoryId]),
|
|
804
|
-
placement: {
|
|
805
|
-
origin: Point3d.create(4, 4, 4),
|
|
806
|
-
angles: YawPitchRollAngles.createDegrees(0, 0, 0),
|
|
807
|
-
},
|
|
808
|
-
};
|
|
809
|
-
const physicalObjectId4 = sourceDb.elements.insertElement(physicalObjectProps4);
|
|
810
|
-
assert.isTrue(Id64.isValidId64(physicalObjectId4));
|
|
811
|
-
// Insert PhysicalElement1
|
|
812
|
-
const sourcePhysicalElementProps = {
|
|
813
|
-
classFullName: "ExtensiveTestScenario:SourcePhysicalElement",
|
|
814
|
-
model: physicalModelId,
|
|
815
|
-
category: sourcePhysicalCategoryId,
|
|
816
|
-
code: Code.createEmpty(),
|
|
817
|
-
userLabel: "PhysicalElement1",
|
|
818
|
-
geom: IModelTestUtils.createBox(Point3d.create(2, 2, 2)),
|
|
819
|
-
placement: {
|
|
820
|
-
origin: Point3d.create(4, 4, 4),
|
|
821
|
-
angles: YawPitchRollAngles.createDegrees(0, 0, 0),
|
|
822
|
-
},
|
|
823
|
-
sourceString: "S1",
|
|
824
|
-
sourceDouble: 1.1,
|
|
825
|
-
sourceNavigation: { id: sourcePhysicalCategoryId, relClassName: "ExtensiveTestScenario:SourcePhysicalElementUsesSourceDefinition" },
|
|
826
|
-
commonNavigation: { id: sourcePhysicalCategoryId },
|
|
827
|
-
commonString: "Common",
|
|
828
|
-
commonDouble: 7.3,
|
|
829
|
-
sourceBinary: new Uint8Array([1, 3, 5, 7]),
|
|
830
|
-
commonBinary: Base64EncodedString.fromUint8Array(new Uint8Array([2, 4, 6, 8])),
|
|
831
|
-
extraString: "Extra",
|
|
832
|
-
};
|
|
833
|
-
const sourcePhysicalElementId = sourceDb.elements.insertElement(sourcePhysicalElementProps);
|
|
834
|
-
assert.isTrue(Id64.isValidId64(sourcePhysicalElementId));
|
|
835
|
-
assert.doesNotThrow(() => sourceDb.elements.getElement(sourcePhysicalElementId));
|
|
836
|
-
// Insert ElementAspects
|
|
837
|
-
const aspectProps = {
|
|
838
|
-
classFullName: "ExtensiveTestScenario:SourceUniqueAspect",
|
|
839
|
-
element: new ElementOwnsUniqueAspect(physicalObjectId1),
|
|
840
|
-
commonDouble: 1.1,
|
|
841
|
-
commonString: "Unique",
|
|
842
|
-
commonLong: physicalObjectId1,
|
|
843
|
-
commonBinary: Base64EncodedString.fromUint8Array(new Uint8Array([2, 4, 6, 8])),
|
|
844
|
-
sourceDouble: 11.1,
|
|
845
|
-
sourceString: "UniqueAspect",
|
|
846
|
-
sourceLong: physicalObjectId1,
|
|
847
|
-
sourceGuid: ExtensiveTestScenario.uniqueAspectGuid,
|
|
848
|
-
extraString: "Extra",
|
|
849
|
-
};
|
|
850
|
-
sourceDb.elements.insertAspect(aspectProps);
|
|
851
|
-
const sourceUniqueAspect = sourceDb.elements.getAspects(physicalObjectId1, "ExtensiveTestScenario:SourceUniqueAspect")[0];
|
|
852
|
-
expect(sourceUniqueAspect).to.deep.subsetEqual(omit(aspectProps, ["commonBinary"]), { normalizeClassNameProps: true });
|
|
853
|
-
sourceDb.elements.insertAspect({
|
|
854
|
-
classFullName: "ExtensiveTestScenario:SourceMultiAspect",
|
|
855
|
-
element: new ElementOwnsMultiAspects(physicalObjectId1),
|
|
856
|
-
commonDouble: 2.2,
|
|
857
|
-
commonString: "Multi",
|
|
858
|
-
commonLong: physicalObjectId1,
|
|
859
|
-
sourceDouble: 22.2,
|
|
860
|
-
sourceString: "MultiAspect",
|
|
861
|
-
sourceLong: physicalObjectId1,
|
|
862
|
-
sourceGuid: Guid.createValue(),
|
|
863
|
-
extraString: "Extra",
|
|
864
|
-
});
|
|
865
|
-
sourceDb.elements.insertAspect({
|
|
866
|
-
classFullName: "ExtensiveTestScenario:SourceMultiAspect",
|
|
867
|
-
element: new ElementOwnsMultiAspects(physicalObjectId1),
|
|
868
|
-
commonDouble: 3.3,
|
|
869
|
-
commonString: "Multi",
|
|
870
|
-
commonLong: physicalObjectId1,
|
|
871
|
-
sourceDouble: 33.3,
|
|
872
|
-
sourceString: "MultiAspect",
|
|
873
|
-
sourceLong: physicalObjectId1,
|
|
874
|
-
sourceGuid: Guid.createValue(),
|
|
875
|
-
extraString: "Extra",
|
|
876
|
-
});
|
|
877
|
-
sourceDb.elements.insertAspect({
|
|
878
|
-
classFullName: "ExtensiveTestScenario:SourceUniqueAspectToExclude",
|
|
879
|
-
element: new ElementOwnsUniqueAspect(physicalObjectId1),
|
|
880
|
-
description: "SourceUniqueAspect1",
|
|
881
|
-
});
|
|
882
|
-
sourceDb.elements.insertAspect({
|
|
883
|
-
classFullName: "ExtensiveTestScenario:SourceMultiAspectToExclude",
|
|
884
|
-
element: new ElementOwnsMultiAspects(physicalObjectId1),
|
|
885
|
-
description: "SourceMultiAspect1",
|
|
886
|
-
});
|
|
887
|
-
// Insert DrawingGraphics
|
|
888
|
-
const drawingGraphicProps1 = {
|
|
889
|
-
classFullName: DrawingGraphic.classFullName,
|
|
890
|
-
model: drawingId,
|
|
891
|
-
category: drawingCategoryId,
|
|
892
|
-
code: Code.createEmpty(),
|
|
893
|
-
userLabel: "DrawingGraphic1",
|
|
894
|
-
geom: IModelTestUtils.createRectangle(Point2d.create(1, 1)),
|
|
895
|
-
placement: { origin: Point2d.create(2, 2), angle: 0 },
|
|
896
|
-
};
|
|
897
|
-
const drawingGraphicId1 = sourceDb.elements.insertElement(drawingGraphicProps1);
|
|
898
|
-
assert.isTrue(Id64.isValidId64(drawingGraphicId1));
|
|
899
|
-
const drawingGraphicRepresentsId1 = DrawingGraphicRepresentsElement.insert(sourceDb, drawingGraphicId1, physicalObjectId1);
|
|
900
|
-
assert.isTrue(Id64.isValidId64(drawingGraphicRepresentsId1));
|
|
901
|
-
const drawingGraphicProps2 = {
|
|
902
|
-
classFullName: DrawingGraphic.classFullName,
|
|
903
|
-
model: drawingId,
|
|
904
|
-
category: drawingCategoryId,
|
|
905
|
-
code: Code.createEmpty(),
|
|
906
|
-
userLabel: "DrawingGraphic2",
|
|
907
|
-
geom: IModelTestUtils.createRectangle(Point2d.create(1, 1)),
|
|
908
|
-
placement: { origin: Point2d.create(3, 3), angle: 0 },
|
|
909
|
-
};
|
|
910
|
-
const drawingGraphicId2 = sourceDb.elements.insertElement(drawingGraphicProps2);
|
|
911
|
-
assert.isTrue(Id64.isValidId64(drawingGraphicId2));
|
|
912
|
-
const drawingGraphicRepresentsId2 = DrawingGraphicRepresentsElement.insert(sourceDb, drawingGraphicId2, physicalObjectId1);
|
|
913
|
-
assert.isTrue(Id64.isValidId64(drawingGraphicRepresentsId2));
|
|
914
|
-
// Insert DisplayStyles
|
|
915
|
-
const displayStyle2dId = DisplayStyle2d.insert(sourceDb, definitionModelId, "DisplayStyle2d");
|
|
916
|
-
assert.isTrue(Id64.isValidId64(displayStyle2dId));
|
|
917
|
-
const displayStyle3d = DisplayStyle3d.create(sourceDb, definitionModelId, "DisplayStyle3d");
|
|
918
|
-
const subCategoryOverride = SubCategoryOverride.fromJSON({ color: ColorDef.from(1, 2, 3).toJSON() });
|
|
919
|
-
displayStyle3d.settings.overrideSubCategory(subCategoryId, subCategoryOverride);
|
|
920
|
-
displayStyle3d.settings.addExcludedElements(physicalObjectId1);
|
|
921
|
-
displayStyle3d.settings.setPlanProjectionSettings(spatialLocationModelId, PlanProjectionSettings.fromJSON({ elevation: 10.0 }));
|
|
922
|
-
displayStyle3d.settings.environment = Environment.fromJSON({
|
|
923
|
-
sky: {
|
|
924
|
-
image: {
|
|
925
|
-
type: SkyBoxImageType.Spherical,
|
|
926
|
-
texture: textureId,
|
|
662
|
+
await withEditTxn(sourceDb, async (txn) => {
|
|
663
|
+
txn.updateProjectExtents(projectExtents);
|
|
664
|
+
// Insert CodeSpecs
|
|
665
|
+
const codeSpecId1 = sourceDb.codeSpecs.insert(txn, "SourceCodeSpec", CodeScopeSpec.Type.Model);
|
|
666
|
+
const codeSpecId2 = sourceDb.codeSpecs.insert(txn, "ExtraCodeSpec", CodeScopeSpec.Type.ParentElement);
|
|
667
|
+
const codeSpecId3 = sourceDb.codeSpecs.insert(txn, "InformationRecords", CodeScopeSpec.Type.Model);
|
|
668
|
+
assert.isTrue(Id64.isValidId64(codeSpecId1));
|
|
669
|
+
assert.isTrue(Id64.isValidId64(codeSpecId2));
|
|
670
|
+
assert.isTrue(Id64.isValidId64(codeSpecId3));
|
|
671
|
+
// Insert RepositoryModel structure
|
|
672
|
+
const subjectId = Subject.insert(txn, IModel.rootSubjectId, "Subject", "Subject Description");
|
|
673
|
+
assert.isTrue(Id64.isValidId64(subjectId));
|
|
674
|
+
const sourceOnlySubjectId = Subject.insert(txn, IModel.rootSubjectId, "Only in Source");
|
|
675
|
+
assert.isTrue(Id64.isValidId64(sourceOnlySubjectId));
|
|
676
|
+
const definitionModelId = DefinitionModel.insert(txn, subjectId, "Definition");
|
|
677
|
+
assert.isTrue(Id64.isValidId64(definitionModelId));
|
|
678
|
+
const informationModelId = InformationRecordModel.insert(txn, subjectId, "Information");
|
|
679
|
+
assert.isTrue(Id64.isValidId64(informationModelId));
|
|
680
|
+
const groupModelId = GroupModel.insert(txn, subjectId, "Group");
|
|
681
|
+
assert.isTrue(Id64.isValidId64(groupModelId));
|
|
682
|
+
const physicalModelId = PhysicalModel.insert(txn, subjectId, "Physical");
|
|
683
|
+
assert.isTrue(Id64.isValidId64(physicalModelId));
|
|
684
|
+
const spatialLocationModelId = SpatialLocationModel.insert(txn, subjectId, "SpatialLocation", true);
|
|
685
|
+
assert.isTrue(Id64.isValidId64(spatialLocationModelId));
|
|
686
|
+
const functionalModelId = FunctionalModel.insert(txn, subjectId, "Functional");
|
|
687
|
+
assert.isTrue(Id64.isValidId64(functionalModelId));
|
|
688
|
+
const documentListModelId = DocumentListModel.insert(txn, subjectId, "Document");
|
|
689
|
+
assert.isTrue(Id64.isValidId64(documentListModelId));
|
|
690
|
+
const drawingId = Drawing.insert(txn, documentListModelId, "Drawing");
|
|
691
|
+
assert.isTrue(Id64.isValidId64(drawingId));
|
|
692
|
+
// Insert DefinitionElements
|
|
693
|
+
const modelSelectorId = ModelSelector.insert(txn, definitionModelId, "SpatialModels", [physicalModelId, spatialLocationModelId]);
|
|
694
|
+
assert.isTrue(Id64.isValidId64(modelSelectorId));
|
|
695
|
+
const spatialCategoryId = SpatialCategory.insert(txn, definitionModelId, "SpatialCategory", { color: ColorDef.green.toJSON(), transp: 0, invisible: false });
|
|
696
|
+
assert.isTrue(Id64.isValidId64(spatialCategoryId));
|
|
697
|
+
const sourcePhysicalCategoryId = SpatialCategory.insert(txn, definitionModelId, "SourcePhysicalCategory", { color: ColorDef.blue.toJSON(), transp: 0, invisible: false });
|
|
698
|
+
assert.isTrue(Id64.isValidId64(sourcePhysicalCategoryId));
|
|
699
|
+
const subCategoryId = SubCategory.insert(txn, spatialCategoryId, "SubCategory", { color: ColorDef.blue.toJSON() });
|
|
700
|
+
assert.isTrue(Id64.isValidId64(subCategoryId));
|
|
701
|
+
const filteredSubCategoryId = SubCategory.insert(txn, spatialCategoryId, "FilteredSubCategory", { color: ColorDef.green.toJSON() });
|
|
702
|
+
assert.isTrue(Id64.isValidId64(filteredSubCategoryId));
|
|
703
|
+
const drawingCategoryId = DrawingCategory.insert(txn, definitionModelId, "DrawingCategory", new SubCategoryAppearance());
|
|
704
|
+
assert.isTrue(Id64.isValidId64(drawingCategoryId));
|
|
705
|
+
const spatialCategorySelectorId = CategorySelector.insert(txn, definitionModelId, "SpatialCategories", [spatialCategoryId, sourcePhysicalCategoryId]);
|
|
706
|
+
assert.isTrue(Id64.isValidId64(spatialCategorySelectorId));
|
|
707
|
+
const drawingCategorySelectorId = CategorySelector.insert(txn, definitionModelId, "DrawingCategories", [drawingCategoryId]);
|
|
708
|
+
assert.isTrue(Id64.isValidId64(drawingCategorySelectorId));
|
|
709
|
+
const auxCoordSystemProps = {
|
|
710
|
+
classFullName: AuxCoordSystem2d.classFullName,
|
|
711
|
+
model: definitionModelId,
|
|
712
|
+
code: AuxCoordSystem2d.createCode(sourceDb, definitionModelId, "AuxCoordSystem2d"),
|
|
713
|
+
};
|
|
714
|
+
const auxCoordSystemId = txn.insertElement(auxCoordSystemProps);
|
|
715
|
+
assert.isTrue(Id64.isValidId64(auxCoordSystemId));
|
|
716
|
+
const pngData = [137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 3, 0, 0, 0, 3, 8, 2, 0, 0, 0, 217, 74, 34, 232, 0, 0, 0, 1, 115, 82, 71, 66, 0, 174, 206, 28, 233, 0, 0, 0, 4, 103, 65, 77, 65, 0, 0, 177, 143, 11, 252, 97, 5, 0, 0, 0, 9, 112, 72, 89, 115, 0, 0, 14, 195, 0, 0, 14, 195, 1, 199, 111, 168, 100, 0, 0, 0, 24, 73, 68, 65, 84, 24, 87, 99, 248, 15, 4, 12, 12, 64, 4, 198, 64, 46, 132, 5, 162, 254, 51, 0, 0, 195, 90, 10, 246, 127, 175, 154, 145, 0, 0, 0, 0, 73, 69, 78, 68, 174, 66, 96, 130];
|
|
717
|
+
const textureId = Texture.insertTexture(txn, definitionModelId, "Texture", ImageSourceFormat.Png, Buffer.from(pngData).toString("base64"), "Description for Texture");
|
|
718
|
+
assert.isTrue(Id64.isValidId64(textureId));
|
|
719
|
+
const renderMaterialId = RenderMaterialElement.insert(txn, definitionModelId, "RenderMaterial", { paletteName: "PaletteName" });
|
|
720
|
+
assert.isTrue(Id64.isValidId64(renderMaterialId));
|
|
721
|
+
const geometryPartProps = {
|
|
722
|
+
classFullName: GeometryPart.classFullName,
|
|
723
|
+
model: definitionModelId,
|
|
724
|
+
code: GeometryPart.createCode(sourceDb, definitionModelId, "GeometryPart"),
|
|
725
|
+
geom: IModelTestUtils.createBox(Point3d.create(3, 3, 3)),
|
|
726
|
+
};
|
|
727
|
+
const geometryPartId = txn.insertElement(geometryPartProps);
|
|
728
|
+
assert.isTrue(Id64.isValidId64(geometryPartId));
|
|
729
|
+
// Insert InformationRecords
|
|
730
|
+
const informationRecordProps1 = {
|
|
731
|
+
classFullName: "ExtensiveTestScenario:SourceInformationRecord",
|
|
732
|
+
model: informationModelId,
|
|
733
|
+
code: { spec: codeSpecId3, scope: informationModelId, value: "InformationRecord1" },
|
|
734
|
+
commonString: "Common1",
|
|
735
|
+
sourceString: "One",
|
|
736
|
+
};
|
|
737
|
+
const informationRecordId1 = txn.insertElement(informationRecordProps1);
|
|
738
|
+
assert.isTrue(Id64.isValidId64(informationRecordId1));
|
|
739
|
+
const informationRecordProps2 = {
|
|
740
|
+
classFullName: "ExtensiveTestScenario:SourceInformationRecord",
|
|
741
|
+
model: informationModelId,
|
|
742
|
+
code: { spec: codeSpecId3, scope: informationModelId, value: "InformationRecord2" },
|
|
743
|
+
commonString: "Common2",
|
|
744
|
+
sourceString: "Two",
|
|
745
|
+
};
|
|
746
|
+
const informationRecordId2 = txn.insertElement(informationRecordProps2);
|
|
747
|
+
assert.isTrue(Id64.isValidId64(informationRecordId2));
|
|
748
|
+
const informationRecordProps3 = {
|
|
749
|
+
classFullName: "ExtensiveTestScenario:SourceInformationRecord",
|
|
750
|
+
model: informationModelId,
|
|
751
|
+
code: { spec: codeSpecId3, scope: informationModelId, value: "InformationRecord3" },
|
|
752
|
+
commonString: "Common3",
|
|
753
|
+
sourceString: "Three",
|
|
754
|
+
};
|
|
755
|
+
const informationRecordId3 = txn.insertElement(informationRecordProps3);
|
|
756
|
+
assert.isTrue(Id64.isValidId64(informationRecordId3));
|
|
757
|
+
// Insert PhysicalObject1
|
|
758
|
+
const physicalObjectProps1 = {
|
|
759
|
+
classFullName: PhysicalObject.classFullName,
|
|
760
|
+
model: physicalModelId,
|
|
761
|
+
category: spatialCategoryId,
|
|
762
|
+
code: Code.createEmpty(),
|
|
763
|
+
userLabel: "PhysicalObject1",
|
|
764
|
+
geom: IModelTestUtils.createBox(Point3d.create(1, 1, 1), spatialCategoryId, subCategoryId, renderMaterialId, geometryPartId),
|
|
765
|
+
placement: {
|
|
766
|
+
origin: Point3d.create(1, 1, 1),
|
|
767
|
+
angles: YawPitchRollAngles.createDegrees(0, 0, 0),
|
|
927
768
|
},
|
|
928
|
-
}
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
769
|
+
};
|
|
770
|
+
const physicalObjectId1 = txn.insertElement(physicalObjectProps1);
|
|
771
|
+
assert.isTrue(Id64.isValidId64(physicalObjectId1));
|
|
772
|
+
// Insert PhysicalObject1 children
|
|
773
|
+
const childObjectProps1A = physicalObjectProps1;
|
|
774
|
+
childObjectProps1A.userLabel = "ChildObject1A";
|
|
775
|
+
childObjectProps1A.parent = new ElementOwnsChildElements(physicalObjectId1);
|
|
776
|
+
childObjectProps1A.placement.origin = Point3d.create(0, 1, 1);
|
|
777
|
+
const childObjectId1A = txn.insertElement(childObjectProps1A);
|
|
778
|
+
assert.isTrue(Id64.isValidId64(childObjectId1A));
|
|
779
|
+
const childObjectProps1B = childObjectProps1A;
|
|
780
|
+
childObjectProps1B.userLabel = "ChildObject1B";
|
|
781
|
+
childObjectProps1B.placement.origin = Point3d.create(1, 0, 1);
|
|
782
|
+
const childObjectId1B = txn.insertElement(childObjectProps1B);
|
|
783
|
+
assert.isTrue(Id64.isValidId64(childObjectId1B));
|
|
784
|
+
// Insert PhysicalObject2
|
|
785
|
+
const physicalObjectProps2 = {
|
|
786
|
+
classFullName: PhysicalObject.classFullName,
|
|
787
|
+
model: physicalModelId,
|
|
788
|
+
category: sourcePhysicalCategoryId,
|
|
789
|
+
code: Code.createEmpty(),
|
|
790
|
+
userLabel: "PhysicalObject2",
|
|
791
|
+
geom: IModelTestUtils.createBox(Point3d.create(2, 2, 2)),
|
|
792
|
+
placement: {
|
|
793
|
+
origin: Point3d.create(2, 2, 2),
|
|
794
|
+
angles: YawPitchRollAngles.createDegrees(0, 0, 0),
|
|
795
|
+
},
|
|
796
|
+
};
|
|
797
|
+
const physicalObjectId2 = txn.insertElement(physicalObjectProps2);
|
|
798
|
+
assert.isTrue(Id64.isValidId64(physicalObjectId2));
|
|
799
|
+
// Insert PhysicalObject3
|
|
800
|
+
const physicalObjectProps3 = {
|
|
801
|
+
classFullName: PhysicalObject.classFullName,
|
|
802
|
+
model: physicalModelId,
|
|
803
|
+
category: sourcePhysicalCategoryId,
|
|
804
|
+
code: Code.createEmpty(),
|
|
805
|
+
federationGuid: ExtensiveTestScenario.federationGuid3,
|
|
806
|
+
userLabel: "PhysicalObject3",
|
|
807
|
+
};
|
|
808
|
+
const physicalObjectId3 = txn.insertElement(physicalObjectProps3);
|
|
809
|
+
assert.isTrue(Id64.isValidId64(physicalObjectId3));
|
|
810
|
+
// Insert PhysicalObject4
|
|
811
|
+
const physicalObjectProps4 = {
|
|
812
|
+
classFullName: PhysicalObject.classFullName,
|
|
813
|
+
model: physicalModelId,
|
|
814
|
+
category: spatialCategoryId,
|
|
815
|
+
code: Code.createEmpty(),
|
|
816
|
+
userLabel: "PhysicalObject4",
|
|
817
|
+
geom: IModelTestUtils.createBoxes([subCategoryId, filteredSubCategoryId]),
|
|
818
|
+
placement: {
|
|
819
|
+
origin: Point3d.create(4, 4, 4),
|
|
820
|
+
angles: YawPitchRollAngles.createDegrees(0, 0, 0),
|
|
821
|
+
},
|
|
822
|
+
};
|
|
823
|
+
const physicalObjectId4 = txn.insertElement(physicalObjectProps4);
|
|
824
|
+
assert.isTrue(Id64.isValidId64(physicalObjectId4));
|
|
825
|
+
// Insert PhysicalElement1
|
|
826
|
+
const sourcePhysicalElementProps = {
|
|
827
|
+
classFullName: "ExtensiveTestScenario:SourcePhysicalElement",
|
|
828
|
+
model: physicalModelId,
|
|
829
|
+
category: sourcePhysicalCategoryId,
|
|
830
|
+
code: Code.createEmpty(),
|
|
831
|
+
userLabel: "PhysicalElement1",
|
|
832
|
+
geom: IModelTestUtils.createBox(Point3d.create(2, 2, 2)),
|
|
833
|
+
placement: {
|
|
834
|
+
origin: Point3d.create(4, 4, 4),
|
|
835
|
+
angles: YawPitchRollAngles.createDegrees(0, 0, 0),
|
|
836
|
+
},
|
|
837
|
+
sourceString: "S1",
|
|
838
|
+
sourceDouble: 1.1,
|
|
839
|
+
sourceNavigation: { id: sourcePhysicalCategoryId, relClassName: "ExtensiveTestScenario:SourcePhysicalElementUsesSourceDefinition" },
|
|
840
|
+
commonNavigation: { id: sourcePhysicalCategoryId },
|
|
841
|
+
commonString: "Common",
|
|
842
|
+
commonDouble: 7.3,
|
|
843
|
+
sourceBinary: new Uint8Array([1, 3, 5, 7]),
|
|
844
|
+
commonBinary: Base64EncodedString.fromUint8Array(new Uint8Array([2, 4, 6, 8])),
|
|
845
|
+
extraString: "Extra",
|
|
846
|
+
};
|
|
847
|
+
const sourcePhysicalElementId = txn.insertElement(sourcePhysicalElementProps);
|
|
848
|
+
assert.isTrue(Id64.isValidId64(sourcePhysicalElementId));
|
|
849
|
+
assert.doesNotThrow(() => sourceDb.elements.getElement(sourcePhysicalElementId));
|
|
850
|
+
// Insert ElementAspects
|
|
851
|
+
const aspectProps = {
|
|
852
|
+
classFullName: "ExtensiveTestScenario:SourceUniqueAspect",
|
|
853
|
+
element: new ElementOwnsUniqueAspect(physicalObjectId1),
|
|
854
|
+
commonDouble: 1.1,
|
|
855
|
+
commonString: "Unique",
|
|
856
|
+
commonLong: physicalObjectId1,
|
|
857
|
+
commonBinary: Base64EncodedString.fromUint8Array(new Uint8Array([2, 4, 6, 8])),
|
|
858
|
+
sourceDouble: 11.1,
|
|
859
|
+
sourceString: "UniqueAspect",
|
|
860
|
+
sourceLong: physicalObjectId1,
|
|
861
|
+
sourceGuid: ExtensiveTestScenario.uniqueAspectGuid,
|
|
862
|
+
extraString: "Extra",
|
|
863
|
+
};
|
|
864
|
+
txn.insertAspect(aspectProps);
|
|
865
|
+
const sourceUniqueAspect = sourceDb.elements.getAspects(physicalObjectId1, "ExtensiveTestScenario:SourceUniqueAspect")[0];
|
|
866
|
+
expect(sourceUniqueAspect).to.deep.subsetEqual(omit(aspectProps, ["commonBinary"]), { normalizeClassNameProps: true });
|
|
867
|
+
txn.insertAspect({
|
|
868
|
+
classFullName: "ExtensiveTestScenario:SourceMultiAspect",
|
|
869
|
+
element: new ElementOwnsMultiAspects(physicalObjectId1),
|
|
870
|
+
commonDouble: 2.2,
|
|
871
|
+
commonString: "Multi",
|
|
872
|
+
commonLong: physicalObjectId1,
|
|
873
|
+
sourceDouble: 22.2,
|
|
874
|
+
sourceString: "MultiAspect",
|
|
875
|
+
sourceLong: physicalObjectId1,
|
|
876
|
+
sourceGuid: Guid.createValue(),
|
|
877
|
+
extraString: "Extra",
|
|
878
|
+
});
|
|
879
|
+
txn.insertAspect({
|
|
880
|
+
classFullName: "ExtensiveTestScenario:SourceMultiAspect",
|
|
881
|
+
element: new ElementOwnsMultiAspects(physicalObjectId1),
|
|
882
|
+
commonDouble: 3.3,
|
|
883
|
+
commonString: "Multi",
|
|
884
|
+
commonLong: physicalObjectId1,
|
|
885
|
+
sourceDouble: 33.3,
|
|
886
|
+
sourceString: "MultiAspect",
|
|
887
|
+
sourceLong: physicalObjectId1,
|
|
888
|
+
sourceGuid: Guid.createValue(),
|
|
889
|
+
extraString: "Extra",
|
|
890
|
+
});
|
|
891
|
+
txn.insertAspect({
|
|
892
|
+
classFullName: "ExtensiveTestScenario:SourceUniqueAspectToExclude",
|
|
893
|
+
element: new ElementOwnsUniqueAspect(physicalObjectId1),
|
|
894
|
+
description: "SourceUniqueAspect1",
|
|
895
|
+
});
|
|
896
|
+
txn.insertAspect({
|
|
897
|
+
classFullName: "ExtensiveTestScenario:SourceMultiAspectToExclude",
|
|
898
|
+
element: new ElementOwnsMultiAspects(physicalObjectId1),
|
|
899
|
+
description: "SourceMultiAspect1",
|
|
900
|
+
});
|
|
901
|
+
// Insert DrawingGraphics
|
|
902
|
+
const drawingGraphicProps1 = {
|
|
903
|
+
classFullName: DrawingGraphic.classFullName,
|
|
904
|
+
model: drawingId,
|
|
905
|
+
category: drawingCategoryId,
|
|
906
|
+
code: Code.createEmpty(),
|
|
907
|
+
userLabel: "DrawingGraphic1",
|
|
908
|
+
geom: IModelTestUtils.createRectangle(Point2d.create(1, 1)),
|
|
909
|
+
placement: { origin: Point2d.create(2, 2), angle: 0 },
|
|
910
|
+
};
|
|
911
|
+
const drawingGraphicId1 = txn.insertElement(drawingGraphicProps1);
|
|
912
|
+
assert.isTrue(Id64.isValidId64(drawingGraphicId1));
|
|
913
|
+
const drawingGraphicRepresentsId1 = DrawingGraphicRepresentsElement.insert(txn, drawingGraphicId1, physicalObjectId1);
|
|
914
|
+
assert.isTrue(Id64.isValidId64(drawingGraphicRepresentsId1));
|
|
915
|
+
const drawingGraphicProps2 = {
|
|
916
|
+
classFullName: DrawingGraphic.classFullName,
|
|
917
|
+
model: drawingId,
|
|
918
|
+
category: drawingCategoryId,
|
|
919
|
+
code: Code.createEmpty(),
|
|
920
|
+
userLabel: "DrawingGraphic2",
|
|
921
|
+
geom: IModelTestUtils.createRectangle(Point2d.create(1, 1)),
|
|
922
|
+
placement: { origin: Point2d.create(3, 3), angle: 0 },
|
|
923
|
+
};
|
|
924
|
+
const drawingGraphicId2 = txn.insertElement(drawingGraphicProps2);
|
|
925
|
+
assert.isTrue(Id64.isValidId64(drawingGraphicId2));
|
|
926
|
+
const drawingGraphicRepresentsId2 = DrawingGraphicRepresentsElement.insert(txn, drawingGraphicId2, physicalObjectId1);
|
|
927
|
+
assert.isTrue(Id64.isValidId64(drawingGraphicRepresentsId2));
|
|
928
|
+
// Insert DisplayStyles
|
|
929
|
+
const displayStyle2dId = DisplayStyle2d.insert(txn, definitionModelId, "DisplayStyle2d");
|
|
930
|
+
assert.isTrue(Id64.isValidId64(displayStyle2dId));
|
|
931
|
+
const displayStyle3d = DisplayStyle3d.create(sourceDb, definitionModelId, "DisplayStyle3d");
|
|
932
|
+
const subCategoryOverride = SubCategoryOverride.fromJSON({ color: ColorDef.from(1, 2, 3).toJSON() });
|
|
933
|
+
displayStyle3d.settings.overrideSubCategory(subCategoryId, subCategoryOverride);
|
|
934
|
+
displayStyle3d.settings.addExcludedElements(physicalObjectId1);
|
|
935
|
+
displayStyle3d.settings.setPlanProjectionSettings(spatialLocationModelId, PlanProjectionSettings.fromJSON({ elevation: 10.0 }));
|
|
936
|
+
displayStyle3d.settings.environment = Environment.fromJSON({
|
|
937
|
+
sky: {
|
|
938
|
+
image: {
|
|
939
|
+
type: SkyBoxImageType.Spherical,
|
|
940
|
+
texture: textureId,
|
|
941
|
+
},
|
|
942
|
+
},
|
|
943
|
+
});
|
|
944
|
+
const displayStyle3dId = displayStyle3d.insert(txn);
|
|
945
|
+
assert.isTrue(Id64.isValidId64(displayStyle3dId));
|
|
946
|
+
// Insert ViewDefinitions
|
|
947
|
+
const viewId = OrthographicViewDefinition.insert(txn, definitionModelId, "Orthographic View", modelSelectorId, spatialCategorySelectorId, displayStyle3dId, projectExtents, StandardViewIndex.Iso);
|
|
948
|
+
assert.isTrue(Id64.isValidId64(viewId));
|
|
949
|
+
const drawingViewRange = new Range2d(0, 0, 100, 100);
|
|
950
|
+
const drawingViewId = DrawingViewDefinition.insert(txn, definitionModelId, "Drawing View", drawingId, drawingCategorySelectorId, displayStyle2dId, drawingViewRange);
|
|
951
|
+
assert.isTrue(Id64.isValidId64(drawingViewId));
|
|
952
|
+
// Insert instance of SourceRelToExclude to test relationship exclusion by class
|
|
953
|
+
const relationship1 = sourceDb.relationships.createInstance({
|
|
954
|
+
classFullName: "ExtensiveTestScenario:SourceRelToExclude",
|
|
955
|
+
sourceId: spatialCategorySelectorId,
|
|
956
|
+
targetId: drawingCategorySelectorId,
|
|
957
|
+
});
|
|
958
|
+
const relationshipId1 = txn.insertRelationship(relationship1.toJSON());
|
|
959
|
+
assert.isTrue(Id64.isValidId64(relationshipId1));
|
|
960
|
+
// Insert instance of RelWithProps to test relationship property remapping
|
|
961
|
+
const relationship2 = sourceDb.relationships.createInstance({
|
|
962
|
+
classFullName: "ExtensiveTestScenario:SourceRelWithProps",
|
|
963
|
+
sourceId: spatialCategorySelectorId,
|
|
964
|
+
targetId: drawingCategorySelectorId,
|
|
965
|
+
sourceString: "One",
|
|
966
|
+
sourceDouble: 1.1,
|
|
967
|
+
sourceLong: spatialCategoryId,
|
|
968
|
+
sourceGuid: Guid.createValue(),
|
|
969
|
+
});
|
|
970
|
+
const relationshipId2 = txn.insertRelationship(relationship2.toJSON());
|
|
971
|
+
assert.isTrue(Id64.isValidId64(relationshipId2));
|
|
972
|
+
}); // end withEditTxn
|
|
958
973
|
}
|
|
959
974
|
static updateDb(sourceDb) {
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
975
|
+
withEditTxn(sourceDb, (txn) => {
|
|
976
|
+
// Update Subject element
|
|
977
|
+
const subjectId = sourceDb.elements.queryElementIdByCode(Subject.createCode(sourceDb, IModel.rootSubjectId, "Subject"));
|
|
978
|
+
assert.isTrue(Id64.isValidId64(subjectId));
|
|
979
|
+
const subject = sourceDb.elements.getElement(subjectId);
|
|
980
|
+
subject.description = "Subject description (Updated)";
|
|
981
|
+
txn.updateElement(subject.toJSON());
|
|
982
|
+
// Update spatialCategory element
|
|
983
|
+
const definitionModelId = sourceDb.elements.queryElementIdByCode(InformationPartitionElement.createCode(sourceDb, subjectId, "Definition"));
|
|
984
|
+
assert.isTrue(Id64.isValidId64(definitionModelId));
|
|
985
|
+
const spatialCategoryId = sourceDb.elements.queryElementIdByCode(SpatialCategory.createCode(sourceDb, definitionModelId, "SpatialCategory"));
|
|
986
|
+
assert.isTrue(Id64.isValidId64(spatialCategoryId));
|
|
987
|
+
const spatialCategory = sourceDb.elements.getElement(spatialCategoryId);
|
|
988
|
+
spatialCategory.federationGuid = Guid.createValue();
|
|
989
|
+
txn.updateElement(spatialCategory.toJSON());
|
|
990
|
+
// Update relationship properties
|
|
991
|
+
const spatialCategorySelectorId = sourceDb.elements.queryElementIdByCode(CategorySelector.createCode(sourceDb, definitionModelId, "SpatialCategories"));
|
|
992
|
+
assert.isTrue(Id64.isValidId64(spatialCategorySelectorId));
|
|
993
|
+
const drawingCategorySelectorId = sourceDb.elements.queryElementIdByCode(CategorySelector.createCode(sourceDb, definitionModelId, "DrawingCategories"));
|
|
994
|
+
assert.isTrue(Id64.isValidId64(drawingCategorySelectorId));
|
|
995
|
+
const relWithProps = sourceDb.relationships.getInstanceProps("ExtensiveTestScenario:SourceRelWithProps", { sourceId: spatialCategorySelectorId, targetId: drawingCategorySelectorId });
|
|
996
|
+
assert.equal(relWithProps.sourceString, "One");
|
|
997
|
+
assert.equal(relWithProps.sourceDouble, 1.1);
|
|
998
|
+
relWithProps.sourceString += "-Updated";
|
|
999
|
+
relWithProps.sourceDouble = 1.2;
|
|
1000
|
+
txn.updateRelationship(relWithProps);
|
|
1001
|
+
// Update ElementAspect properties
|
|
1002
|
+
const physicalObjectId1 = IModelTestUtils.queryByUserLabel(sourceDb, "PhysicalObject1");
|
|
1003
|
+
const sourceUniqueAspects = sourceDb.elements.getAspects(physicalObjectId1, "ExtensiveTestScenario:SourceUniqueAspect");
|
|
1004
|
+
assert.equal(sourceUniqueAspects.length, 1);
|
|
1005
|
+
sourceUniqueAspects[0].asAny.commonString += "-Updated";
|
|
1006
|
+
sourceUniqueAspects[0].asAny.sourceString += "-Updated";
|
|
1007
|
+
txn.updateAspect(sourceUniqueAspects[0].toJSON());
|
|
1008
|
+
const sourceMultiAspects = sourceDb.elements.getAspects(physicalObjectId1, "ExtensiveTestScenario:SourceMultiAspect");
|
|
1009
|
+
assert.equal(sourceMultiAspects.length, 2);
|
|
1010
|
+
sourceMultiAspects[1].asAny.commonString += "-Updated";
|
|
1011
|
+
sourceMultiAspects[1].asAny.sourceString += "-Updated";
|
|
1012
|
+
txn.updateAspect(sourceMultiAspects[1].toJSON());
|
|
1013
|
+
// clear NavigationProperty of PhysicalElement1
|
|
1014
|
+
const physicalElementId1 = IModelTestUtils.queryByUserLabel(sourceDb, "PhysicalElement1");
|
|
1015
|
+
let physicalElement1 = sourceDb.elements.getElement(physicalElementId1);
|
|
1016
|
+
physicalElement1.asAny.commonNavigation = RelatedElement.none;
|
|
1017
|
+
txn.updateElement(physicalElement1.toJSON());
|
|
1018
|
+
physicalElement1 = sourceDb.elements.getElement(physicalElementId1);
|
|
1019
|
+
assert.isUndefined(physicalElement1.asAny.commonNavigation);
|
|
1020
|
+
// delete PhysicalObject3
|
|
1021
|
+
const physicalObjectId3 = IModelTestUtils.queryByUserLabel(sourceDb, "PhysicalObject3");
|
|
1022
|
+
assert.isTrue(Id64.isValidId64(physicalObjectId3));
|
|
1023
|
+
txn.deleteElement(physicalObjectId3);
|
|
1024
|
+
assert.equal(Id64.invalid, IModelTestUtils.queryByUserLabel(sourceDb, "PhysicalObject3"));
|
|
1025
|
+
// Insert PhysicalObject5
|
|
1026
|
+
const physicalObjectProps5 = {
|
|
1027
|
+
classFullName: PhysicalObject.classFullName,
|
|
1028
|
+
model: physicalElement1.model,
|
|
1029
|
+
category: spatialCategoryId,
|
|
1030
|
+
code: Code.createEmpty(),
|
|
1031
|
+
userLabel: "PhysicalObject5",
|
|
1032
|
+
geom: IModelTestUtils.createBox(Point3d.create(1, 1, 1)),
|
|
1033
|
+
placement: {
|
|
1034
|
+
origin: Point3d.create(5, 5, 5),
|
|
1035
|
+
angles: YawPitchRollAngles.createDegrees(0, 0, 0),
|
|
1036
|
+
},
|
|
1037
|
+
};
|
|
1038
|
+
const physicalObjectId5 = txn.insertElement(physicalObjectProps5);
|
|
1039
|
+
assert.isTrue(Id64.isValidId64(physicalObjectId5));
|
|
1040
|
+
// delete relationship
|
|
1041
|
+
const drawingGraphicId1 = IModelTestUtils.queryByUserLabel(sourceDb, "DrawingGraphic1");
|
|
1042
|
+
const drawingGraphicId2 = IModelTestUtils.queryByUserLabel(sourceDb, "DrawingGraphic2");
|
|
1043
|
+
const relationship = sourceDb.relationships.getInstance(DrawingGraphicRepresentsElement.classFullName, { sourceId: drawingGraphicId2, targetId: physicalObjectId1 });
|
|
1044
|
+
txn.deleteRelationship(relationship.toJSON());
|
|
1045
|
+
// insert relationships
|
|
1046
|
+
DrawingGraphicRepresentsElement.insert(txn, drawingGraphicId1, physicalObjectId5);
|
|
1047
|
+
DrawingGraphicRepresentsElement.insert(txn, drawingGraphicId2, physicalObjectId5);
|
|
1048
|
+
// update InformationRecord2
|
|
1049
|
+
const informationRecordCodeSpec = sourceDb.codeSpecs.getByName("InformationRecords");
|
|
1050
|
+
const informationModelId = sourceDb.elements.queryElementIdByCode(InformationPartitionElement.createCode(sourceDb, subjectId, "Information"));
|
|
1051
|
+
const informationRecodeCode2 = new Code({ spec: informationRecordCodeSpec.id, scope: informationModelId, value: "InformationRecord2" });
|
|
1052
|
+
const informationRecordId2 = sourceDb.elements.queryElementIdByCode(informationRecodeCode2);
|
|
1053
|
+
assert.isTrue(Id64.isValidId64(informationRecordId2));
|
|
1054
|
+
const informationRecord2 = sourceDb.elements.getElement(informationRecordId2);
|
|
1055
|
+
informationRecord2.commonString = `${informationRecord2.commonString}-Updated`;
|
|
1056
|
+
informationRecord2.sourceString = `${informationRecord2.sourceString}-Updated`;
|
|
1057
|
+
txn.updateElement(informationRecord2);
|
|
1058
|
+
// delete InformationRecord3
|
|
1059
|
+
const informationRecodeCode3 = new Code({ spec: informationRecordCodeSpec.id, scope: informationModelId, value: "InformationRecord3" });
|
|
1060
|
+
const informationRecordId3 = sourceDb.elements.queryElementIdByCode(informationRecodeCode3);
|
|
1061
|
+
assert.isTrue(Id64.isValidId64(informationRecordId3));
|
|
1062
|
+
txn.deleteElement(informationRecordId3);
|
|
1063
|
+
}); // end withEditTxn
|
|
1047
1064
|
}
|
|
1048
1065
|
static assertUpdatesInDb(iModelDb, assertDeletes = true) {
|
|
1049
1066
|
// determine which schema was imported
|