@itwin/core-backend 5.0.0-dev.110 → 5.0.0-dev.112
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/CHANGELOG.md +21 -1
- 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.map +1 -1
- package/lib/cjs/CatalogDb.js.map +1 -1
- package/lib/cjs/Category.d.ts +37 -0
- package/lib/cjs/Category.d.ts.map +1 -1
- package/lib/cjs/Category.js +73 -0
- 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.js +242 -242
- package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
- package/lib/cjs/ChannelControl.js.map +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.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 +5 -0
- package/lib/cjs/DisplayStyle.d.ts.map +1 -1
- package/lib/cjs/DisplayStyle.js +27 -0
- 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/ECSqlStatement.js.map +1 -1
- package/lib/cjs/Element.d.ts +166 -10
- package/lib/cjs/Element.d.ts.map +1 -1
- package/lib/cjs/Element.js +510 -9
- package/lib/cjs/Element.js.map +1 -1
- package/lib/cjs/ElementAspect.js.map +1 -1
- package/lib/cjs/ElementGraphics.js.map +1 -1
- package/lib/cjs/ElementTreeWalker.js.map +1 -1
- package/lib/cjs/Entity.d.ts +41 -1
- package/lib/cjs/Entity.d.ts.map +1 -1
- package/lib/cjs/Entity.js +58 -0
- 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.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 +19 -36
- package/lib/cjs/IModelDb.d.ts.map +1 -1
- package/lib/cjs/IModelDb.js +137 -77
- 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 +13 -0
- package/lib/cjs/IModelHost.d.ts.map +1 -1
- package/lib/cjs/IModelHost.js +6 -0
- package/lib/cjs/IModelHost.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.map +1 -1
- 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 +19 -0
- package/lib/cjs/Material.d.ts.map +1 -1
- package/lib/cjs/Material.js +29 -0
- package/lib/cjs/Material.js.map +1 -1
- package/lib/cjs/Model.d.ts +42 -6
- package/lib/cjs/Model.d.ts.map +1 -1
- package/lib/cjs/Model.js +93 -5
- 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.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.map +1 -1
- package/lib/cjs/SchemaUtils.js.map +1 -1
- 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/TextAnnotationElement.js.map +1 -1
- package/lib/cjs/TextAnnotationGeometry.js.map +1 -1
- package/lib/cjs/TextAnnotationLayout.js.map +1 -1
- package/lib/cjs/Texture.js.map +1 -1
- package/lib/cjs/TileStorage.js.map +1 -1
- package/lib/cjs/TxnManager.d.ts.map +1 -1
- package/lib/cjs/TxnManager.js +1 -0
- package/lib/cjs/TxnManager.js.map +1 -1
- package/lib/cjs/ViewDefinition.d.ts +100 -0
- package/lib/cjs/ViewDefinition.d.ts.map +1 -1
- package/lib/cjs/ViewDefinition.js +208 -0
- package/lib/cjs/ViewDefinition.js.map +1 -1
- package/lib/cjs/ViewStateHydrator.js +3 -3
- package/lib/cjs/ViewStateHydrator.js.map +1 -1
- package/lib/cjs/ViewStore.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.js.map +1 -1
- package/lib/cjs/domains/FunctionalElements.js.map +1 -1
- package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
- 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.js.map +1 -1
- package/lib/cjs/internal/ElementLRUCache.d.ts +28 -0
- package/lib/cjs/internal/ElementLRUCache.d.ts.map +1 -0
- package/lib/cjs/internal/ElementLRUCache.js +120 -0
- package/lib/cjs/internal/ElementLRUCache.js.map +1 -0
- 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/NativePlatform.js.map +1 -1
- package/lib/cjs/internal/NoLocks.js.map +1 -1
- package/lib/cjs/internal/ServerBasedLocks.js.map +1 -1
- package/lib/cjs/internal/Symbols.d.ts +1 -0
- package/lib/cjs/internal/Symbols.d.ts.map +1 -1
- package/lib/cjs/internal/Symbols.js +2 -1
- package/lib/cjs/internal/Symbols.js.map +1 -1
- package/lib/cjs/internal/cross-package.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 +2 -2
- 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.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/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.map +1 -1
- package/lib/esm/CatalogDb.js.map +1 -1
- package/lib/esm/Category.d.ts +37 -0
- package/lib/esm/Category.d.ts.map +1 -1
- package/lib/esm/Category.js +73 -0
- 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.js +242 -242
- package/lib/esm/ChangesetECAdaptor.js.map +1 -1
- package/lib/esm/ChannelControl.js.map +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.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 +5 -0
- package/lib/esm/DisplayStyle.d.ts.map +1 -1
- package/lib/esm/DisplayStyle.js +27 -0
- 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/ECSqlStatement.js.map +1 -1
- package/lib/esm/Element.d.ts +166 -10
- package/lib/esm/Element.d.ts.map +1 -1
- package/lib/esm/Element.js +513 -12
- package/lib/esm/Element.js.map +1 -1
- package/lib/esm/ElementAspect.js.map +1 -1
- package/lib/esm/ElementGraphics.js.map +1 -1
- package/lib/esm/ElementTreeWalker.js.map +1 -1
- package/lib/esm/Entity.d.ts +41 -1
- package/lib/esm/Entity.d.ts.map +1 -1
- package/lib/esm/Entity.js +58 -0
- 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.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 +19 -36
- package/lib/esm/IModelDb.d.ts.map +1 -1
- package/lib/esm/IModelDb.js +140 -80
- 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 +13 -0
- package/lib/esm/IModelHost.d.ts.map +1 -1
- package/lib/esm/IModelHost.js +6 -0
- package/lib/esm/IModelHost.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.map +1 -1
- 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 +19 -0
- package/lib/esm/Material.d.ts.map +1 -1
- package/lib/esm/Material.js +30 -1
- package/lib/esm/Material.js.map +1 -1
- package/lib/esm/Model.d.ts +42 -6
- package/lib/esm/Model.d.ts.map +1 -1
- package/lib/esm/Model.js +94 -6
- 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.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.map +1 -1
- package/lib/esm/SchemaUtils.js.map +1 -1
- 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/TextAnnotationElement.js.map +1 -1
- package/lib/esm/TextAnnotationGeometry.js.map +1 -1
- package/lib/esm/TextAnnotationLayout.js.map +1 -1
- package/lib/esm/Texture.js.map +1 -1
- package/lib/esm/TileStorage.js.map +1 -1
- package/lib/esm/TxnManager.d.ts.map +1 -1
- package/lib/esm/TxnManager.js +1 -0
- package/lib/esm/TxnManager.js.map +1 -1
- package/lib/esm/ViewDefinition.d.ts +100 -0
- package/lib/esm/ViewDefinition.d.ts.map +1 -1
- package/lib/esm/ViewDefinition.js +209 -1
- package/lib/esm/ViewDefinition.js.map +1 -1
- package/lib/esm/ViewStateHydrator.js +3 -3
- package/lib/esm/ViewStateHydrator.js.map +1 -1
- package/lib/esm/ViewStore.js.map +1 -1
- package/lib/esm/core-backend.js.map +1 -1
- package/lib/esm/domains/FunctionalElements.js.map +1 -1
- package/lib/esm/domains/FunctionalSchema.js.map +1 -1
- 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.js.map +1 -1
- package/lib/esm/internal/ElementLRUCache.d.ts +28 -0
- package/lib/esm/internal/ElementLRUCache.d.ts.map +1 -0
- package/lib/esm/internal/ElementLRUCache.js +116 -0
- package/lib/esm/internal/ElementLRUCache.js.map +1 -0
- 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/NativePlatform.js.map +1 -1
- package/lib/esm/internal/NoLocks.js.map +1 -1
- package/lib/esm/internal/ServerBasedLocks.js.map +1 -1
- package/lib/esm/internal/Symbols.d.ts +1 -0
- package/lib/esm/internal/Symbols.d.ts.map +1 -1
- package/lib/esm/internal/Symbols.js +1 -0
- package/lib/esm/internal/Symbols.js.map +1 -1
- package/lib/esm/internal/cross-package.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 +2 -2
- 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.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/AttachDb.test.js +11 -11
- package/lib/esm/test/AttachDb.test.js.map +1 -1
- package/lib/esm/test/ElementLRUCache.test.d.ts +2 -0
- package/lib/esm/test/ElementLRUCache.test.d.ts.map +1 -0
- package/lib/esm/test/ElementLRUCache.test.js +212 -0
- package/lib/esm/test/ElementLRUCache.test.js.map +1 -0
- package/lib/esm/test/GeometryTestUtil.js.map +1 -1
- package/lib/esm/test/IModelHost.test.js.map +1 -1
- 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.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/TestChangeSetUtility.js.map +1 -1
- package/lib/esm/test/TestUtils.js.map +1 -1
- package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
- package/lib/esm/test/categories/Category.test.js.map +1 -1
- 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/ConcurrentQueryLoad.test.js +15 -15
- package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECDb.test.js +57 -57
- 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 +65 -65
- package/lib/esm/test/ecdb/ECSqlAst.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlQuery.test.js +7 -30
- package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlReader.test.js +16 -16
- package/lib/esm/test/ecdb/ECSqlReader.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlStatement.test.js +292 -292
- package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
- package/lib/esm/test/ecdb/SqliteStatement.test.js.map +1 -1
- 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.map +1 -1
- package/lib/esm/test/element/ElementAspect.test.js +22 -22
- package/lib/esm/test/element/ElementAspect.test.js.map +1 -1
- package/lib/esm/test/element/ElementDependencyGraph.test.js.map +1 -1
- package/lib/esm/test/element/ElementRoundTrip.test.js +139 -139
- package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -1
- package/lib/esm/test/element/ExcludedElements.test.js.map +1 -1
- package/lib/esm/test/element/ExternalSource.test.js.map +1 -1
- package/lib/esm/test/element/NullStructArray.test.js +13 -13
- package/lib/esm/test/element/NullStructArray.test.js.map +1 -1
- 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.map +1 -1
- 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/imageData.js.map +1 -1
- 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 +22 -11
- package/lib/esm/test/imodel/IModel.test.js.map +1 -1
- package/lib/esm/test/imodel/ProjectExtents.test.js.map +1 -1
- package/lib/esm/test/imodel/SchemaXmlImport.test.js.map +1 -1
- 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 +71 -71
- package/lib/esm/test/schema/ClassRegistry.test.js.map +1 -1
- package/lib/esm/test/schema/FunctionalDomain.test.js.map +1 -1
- package/lib/esm/test/schema/GenericDomain.test.js.map +1 -1
- package/lib/esm/test/schema/IModelSchemaContext.test.js.map +1 -1
- package/lib/esm/test/sheetindex/SheetIndex.test.js.map +1 -1
- package/lib/esm/test/standalone/ChangeMerge.test.js.map +1 -1
- package/lib/esm/test/standalone/ChangesetReader.test.js +28 -28
- 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.map +1 -1
- package/lib/esm/test/standalone/Drawing.test.js.map +1 -1
- package/lib/esm/test/standalone/ElementGraphics.test.js.map +1 -1
- package/lib/esm/test/standalone/ElementMesh.test.js.map +1 -1
- package/lib/esm/test/standalone/ExportGraphics.test.js +14 -14
- package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -1
- package/lib/esm/test/standalone/GeometryChangeEvents.test.js.map +1 -1
- package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -1
- package/lib/esm/test/standalone/HubMock.test.js.map +1 -1
- package/lib/esm/test/standalone/IModelWrite.test.js +27 -27
- package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -1
- package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js.map +1 -1
- 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.map +1 -1
- 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.map +1 -1
- 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.map +1 -1
- package/lib/esm/test/standalone/SettingsSchemas.test.js.map +1 -1
- package/lib/esm/test/standalone/SnapshotDb.test.js +1 -0
- package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -1
- package/lib/esm/test/standalone/Texture.test.js.map +1 -1
- package/lib/esm/test/standalone/TileCache.test.js.map +1 -1
- package/lib/esm/test/standalone/TileTree.test.js.map +1 -1
- package/lib/esm/test/standalone/TxnManager.test.js +1 -1
- package/lib/esm/test/standalone/TxnManager.test.js.map +1 -1
- 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.map +1 -1
- package/lib/esm/workspace/Settings.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 +12 -12
package/lib/esm/Element.js
CHANGED
|
@@ -6,12 +6,12 @@
|
|
|
6
6
|
* @module Elements
|
|
7
7
|
*/
|
|
8
8
|
import { CompressedId64Set, Id64, JsonUtils, OrderedId64Array } from "@itwin/core-bentley";
|
|
9
|
-
import { BisCodeSpec, Code, ConcreteEntityTypes, IModel, Placement2d, Placement3d, RelatedElement, RenderSchedule, SectionType, TypeDefinition
|
|
10
|
-
import { ClipVector, Range3d, Transform } from "@itwin/core-geometry";
|
|
9
|
+
import { BisCodeSpec, Code, ConcreteEntityTypes, IModel, Placement2d, Placement3d, RelatedElement, RenderSchedule, SectionType, TypeDefinition } from "@itwin/core-common";
|
|
10
|
+
import { ClipVector, Range3d, Transform, YawPitchRollAngles } from "@itwin/core-geometry";
|
|
11
11
|
import { Entity } from "./Entity";
|
|
12
12
|
import { DefinitionModel, DrawingModel, PhysicalModel, SectionDrawingModel } from "./Model";
|
|
13
13
|
import { SubjectOwnsSubjects } from "./NavigationRelationship";
|
|
14
|
-
import { _elementWasCreated, _verifyChannel } from "./internal/Symbols";
|
|
14
|
+
import { _cache, _elementWasCreated, _nativeDb, _verifyChannel } from "./internal/Symbols";
|
|
15
15
|
/** The smallest individually identifiable building block for modeling the real world in an iModel.
|
|
16
16
|
* Each element represents an [[Entity]] in the real world. Sets of Elements (contained in [[Model]]s) are used to model
|
|
17
17
|
* other Elements that represent larger scale real world entities. Using this recursive modeling strategy,
|
|
@@ -61,6 +61,51 @@ export class Element extends Entity {
|
|
|
61
61
|
this.userLabel = props.userLabel;
|
|
62
62
|
this.jsonProperties = { ...props.jsonProperties }; // make sure we have our own copy
|
|
63
63
|
}
|
|
64
|
+
/**
|
|
65
|
+
* Element custom HandledProps include 'codeValue', 'codeSpec', 'codeScope', 'model', 'parent', 'federationGuid', and 'lastMod'.
|
|
66
|
+
* @inheritdoc
|
|
67
|
+
* @beta
|
|
68
|
+
*/
|
|
69
|
+
static _customHandledProps = [
|
|
70
|
+
{ propertyName: "codeValue", source: "Class" },
|
|
71
|
+
{ propertyName: "codeSpec", source: "Class" },
|
|
72
|
+
{ propertyName: "codeScope", source: "Class" },
|
|
73
|
+
{ propertyName: "model", source: "Class" },
|
|
74
|
+
{ propertyName: "parent", source: "Class" },
|
|
75
|
+
{ propertyName: "federationGuid", source: "Class" },
|
|
76
|
+
{ propertyName: "lastMod", source: "Class" },
|
|
77
|
+
];
|
|
78
|
+
/**
|
|
79
|
+
* Element deserializes 'codeValue', 'codeSpec', 'codeScope', 'model', 'parent', and 'federationGuid'.
|
|
80
|
+
* @inheritdoc
|
|
81
|
+
* @beta
|
|
82
|
+
*/
|
|
83
|
+
static deserialize(props) {
|
|
84
|
+
const elProps = super.deserialize(props);
|
|
85
|
+
const instance = props.row;
|
|
86
|
+
elProps.code = { value: instance.codeValue ?? "", spec: instance.codeSpec.id, scope: instance.codeScope.id };
|
|
87
|
+
elProps.model = instance.model.id;
|
|
88
|
+
if (instance.parent)
|
|
89
|
+
elProps.parent = instance.parent;
|
|
90
|
+
if (instance.federationGuid)
|
|
91
|
+
elProps.federationGuid = instance.federationGuid;
|
|
92
|
+
return elProps;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Element serialize 'codeValue', 'codeSpec', 'codeScope', 'model', 'parent', and 'federationGuid'.
|
|
96
|
+
* @inheritdoc
|
|
97
|
+
* @beta
|
|
98
|
+
*/
|
|
99
|
+
static serialize(props, iModel) {
|
|
100
|
+
const inst = super.serialize(props, iModel);
|
|
101
|
+
inst.codeValue = props.code.value;
|
|
102
|
+
inst.codeSpec = { id: props.code.spec };
|
|
103
|
+
inst.codeScope = { id: props.code.scope };
|
|
104
|
+
inst.model = { id: props.model };
|
|
105
|
+
inst.parent = props.parent;
|
|
106
|
+
inst.federationGuid = props.federationGuid ?? iModel[_nativeDb].newBeGuid();
|
|
107
|
+
return inst;
|
|
108
|
+
}
|
|
64
109
|
/** Called before a new Element is inserted.
|
|
65
110
|
* @note throw an exception to disallow the insert
|
|
66
111
|
* @note If you override this method, you must call super.
|
|
@@ -85,6 +130,7 @@ export class Element extends Entity {
|
|
|
85
130
|
const locks = arg.iModel.locks;
|
|
86
131
|
if (locks && !locks.holdsExclusiveLock(arg.model))
|
|
87
132
|
locks[_elementWasCreated](arg.id);
|
|
133
|
+
arg.iModel.models[_cache].delete(arg.model);
|
|
88
134
|
}
|
|
89
135
|
/** Called before an Element is updated.
|
|
90
136
|
* @note throw an exception to disallow the update
|
|
@@ -103,7 +149,10 @@ export class Element extends Entity {
|
|
|
103
149
|
* @note `this` is the class of the Element that was updated
|
|
104
150
|
* @beta
|
|
105
151
|
*/
|
|
106
|
-
static onUpdated(
|
|
152
|
+
static onUpdated(arg) {
|
|
153
|
+
arg.iModel.elements[_cache].delete({ id: arg.id });
|
|
154
|
+
arg.iModel.models[_cache].delete(arg.model);
|
|
155
|
+
}
|
|
107
156
|
/** Called before an Element is deleted.
|
|
108
157
|
* @note throw an exception to disallow the delete
|
|
109
158
|
* @note If you override this method, you must call super.
|
|
@@ -119,7 +168,10 @@ export class Element extends Entity {
|
|
|
119
168
|
* @note `this` is the class of the Element that was deleted
|
|
120
169
|
* @beta
|
|
121
170
|
*/
|
|
122
|
-
static onDeleted(
|
|
171
|
+
static onDeleted(arg) {
|
|
172
|
+
arg.iModel.elements[_cache].delete(arg);
|
|
173
|
+
arg.iModel.models[_cache].delete(arg.model);
|
|
174
|
+
}
|
|
123
175
|
/** Called when an element with an instance of this class as its parent is about to be deleted.
|
|
124
176
|
* @note throw an exception if the element should not be deleted
|
|
125
177
|
* @note implementers should not presume that the element was deleted if this method does not throw,
|
|
@@ -132,7 +184,10 @@ export class Element extends Entity {
|
|
|
132
184
|
* @note `this` is the class of the parent Element whose child was deleted
|
|
133
185
|
* @beta
|
|
134
186
|
*/
|
|
135
|
-
static onChildDeleted(
|
|
187
|
+
static onChildDeleted(arg) {
|
|
188
|
+
arg.iModel.elements[_cache].delete({ id: arg.parentId });
|
|
189
|
+
arg.iModel.elements[_cache].delete({ id: arg.childId });
|
|
190
|
+
}
|
|
136
191
|
/** Called when a *new element* with an instance of this class as its parent is about to be inserted.
|
|
137
192
|
* @note throw an exception if the element should not be inserted
|
|
138
193
|
* @note `this` is the class of the prospective parent Element.
|
|
@@ -143,7 +198,9 @@ export class Element extends Entity {
|
|
|
143
198
|
* @note `this` is the class of the parent Element.
|
|
144
199
|
* @beta
|
|
145
200
|
*/
|
|
146
|
-
static onChildInserted(
|
|
201
|
+
static onChildInserted(arg) {
|
|
202
|
+
arg.iModel.elements[_cache].delete({ id: arg.parentId });
|
|
203
|
+
}
|
|
147
204
|
/** Called when an element with an instance of this class as its parent is about to be updated.
|
|
148
205
|
* @note throw an exception if the element should not be updated
|
|
149
206
|
* @note `this` is the class of the parent Element.
|
|
@@ -154,7 +211,9 @@ export class Element extends Entity {
|
|
|
154
211
|
* @note `this` is the class of the parent Element.
|
|
155
212
|
* @beta
|
|
156
213
|
*/
|
|
157
|
-
static onChildUpdated(
|
|
214
|
+
static onChildUpdated(arg) {
|
|
215
|
+
arg.iModel.elements[_cache].delete({ id: arg.parentId });
|
|
216
|
+
}
|
|
158
217
|
/** Called when an *existing element* is about to be updated so that an instance of this class will become its new parent.
|
|
159
218
|
* @note throw an exception if the element should not be added
|
|
160
219
|
* @note `this` is the class of the prospective parent Element.
|
|
@@ -165,7 +224,9 @@ export class Element extends Entity {
|
|
|
165
224
|
* @note `this` is the class of the new parent Element.
|
|
166
225
|
* @beta
|
|
167
226
|
*/
|
|
168
|
-
static onChildAdded(
|
|
227
|
+
static onChildAdded(arg) {
|
|
228
|
+
arg.iModel.elements[_cache].delete({ id: arg.parentId });
|
|
229
|
+
}
|
|
169
230
|
/** Called when an element with an instance of this class as its parent is about to be updated change to a different parent.
|
|
170
231
|
* @note throw an exception if the element should not be dropped
|
|
171
232
|
* @note `this` is the class of the parent Element.
|
|
@@ -176,7 +237,9 @@ export class Element extends Entity {
|
|
|
176
237
|
* @note `this` is the class of the previous parent Element.
|
|
177
238
|
* @beta
|
|
178
239
|
*/
|
|
179
|
-
static onChildDropped(
|
|
240
|
+
static onChildDropped(arg) {
|
|
241
|
+
arg.iModel.elements[_cache].delete({ id: arg.parentId });
|
|
242
|
+
}
|
|
180
243
|
/** Called when an instance of this class is being *sub-modeled* by a new Model.
|
|
181
244
|
* @note throw an exception if model should not be inserted
|
|
182
245
|
* @note `this` is the class of Element to be sub-modeled.
|
|
@@ -187,7 +250,11 @@ export class Element extends Entity {
|
|
|
187
250
|
* @note `this` is the class of Element that is now sub-modeled.
|
|
188
251
|
* @beta
|
|
189
252
|
*/
|
|
190
|
-
static onSubModelInserted(
|
|
253
|
+
static onSubModelInserted(arg) {
|
|
254
|
+
const id = arg.subModelId;
|
|
255
|
+
arg.iModel.elements[_cache].delete({ id });
|
|
256
|
+
arg.iModel.models[_cache].delete(id);
|
|
257
|
+
}
|
|
191
258
|
/** Called when a sub-model of an instance of this class is being deleted.
|
|
192
259
|
* @note throw an exception if model should not be deleted
|
|
193
260
|
* @note `this` is the class of Element that is sub-modeled.
|
|
@@ -198,7 +265,11 @@ export class Element extends Entity {
|
|
|
198
265
|
* @note `this` is the class of Element that was sub-modeled.
|
|
199
266
|
* @beta
|
|
200
267
|
*/
|
|
201
|
-
static onSubModelDeleted(
|
|
268
|
+
static onSubModelDeleted(arg) {
|
|
269
|
+
const id = arg.subModelId;
|
|
270
|
+
arg.iModel.elements[_cache].delete({ id });
|
|
271
|
+
arg.iModel.models[_cache].delete(id);
|
|
272
|
+
}
|
|
202
273
|
/** Called during the iModel transformation process after an Element from the source iModel was *cloned* for the target iModel.
|
|
203
274
|
* The transformation process automatically handles remapping BisCore properties and those that are properly described in ECSchema.
|
|
204
275
|
* This callback is only meant to be overridden if there are other Ids in non-standard locations that need to be remapped or other data that needs to be fixed up after the clone.
|
|
@@ -366,6 +437,30 @@ export class GeometricElement extends Element {
|
|
|
366
437
|
...super.requiredReferenceKeyTypeMap,
|
|
367
438
|
category: ConcreteEntityTypes.Element,
|
|
368
439
|
};
|
|
440
|
+
/**
|
|
441
|
+
* GeometricElement custom HandledProps includes 'inSpatialIndex'.
|
|
442
|
+
* @inheritdoc
|
|
443
|
+
* @beta
|
|
444
|
+
*/
|
|
445
|
+
static _customHandledProps = [
|
|
446
|
+
{ propertyName: "inSpatialIndex", source: "Class" },
|
|
447
|
+
];
|
|
448
|
+
/**
|
|
449
|
+
* GeometricElement deserializes 'inSpatialIndex'.
|
|
450
|
+
* @inheritdoc
|
|
451
|
+
* @beta
|
|
452
|
+
*/
|
|
453
|
+
static deserialize(props) {
|
|
454
|
+
return super.deserialize(props);
|
|
455
|
+
}
|
|
456
|
+
/**
|
|
457
|
+
* GeometricElement serialize 'inSpatialIndex'.
|
|
458
|
+
* @inheritdoc
|
|
459
|
+
* @beta
|
|
460
|
+
*/
|
|
461
|
+
static serialize(props, iModel) {
|
|
462
|
+
return super.serialize(props, iModel);
|
|
463
|
+
}
|
|
369
464
|
}
|
|
370
465
|
/** An abstract base class to model real world entities that intrinsically have 3d geometry.
|
|
371
466
|
* See [how to create a GeometricElement3d]($docs/learning/backend/CreateElements.md#GeometricElement3d).
|
|
@@ -393,6 +488,123 @@ export class GeometricElement3d extends GeometricElement {
|
|
|
393
488
|
if (undefined !== this.typeDefinition)
|
|
394
489
|
referenceIds.addElement(this.typeDefinition.id);
|
|
395
490
|
}
|
|
491
|
+
/**
|
|
492
|
+
* GeometricElement3d custom HandledProps includes 'category', 'geometryStream', 'origin', 'yaw', 'pitch', 'roll',
|
|
493
|
+
* 'bBoxLow', 'bBoxHigh', and 'typeDefinition'.
|
|
494
|
+
* @inheritdoc
|
|
495
|
+
* @beta
|
|
496
|
+
*/
|
|
497
|
+
static _customHandledProps = [
|
|
498
|
+
{ propertyName: "category", source: "Class" },
|
|
499
|
+
{ propertyName: "geometryStream", source: "Class" },
|
|
500
|
+
{ propertyName: "origin", source: "Class" },
|
|
501
|
+
{ propertyName: "yaw", source: "Class" },
|
|
502
|
+
{ propertyName: "pitch", source: "Class" },
|
|
503
|
+
{ propertyName: "roll", source: "Class" },
|
|
504
|
+
{ propertyName: "bBoxLow", source: "Class" },
|
|
505
|
+
{ propertyName: "bBoxHigh", source: "Class" },
|
|
506
|
+
{ propertyName: "typeDefinition", source: "Class" }
|
|
507
|
+
];
|
|
508
|
+
/**
|
|
509
|
+
* GeometricElement3d deserializes 'category', 'geometryStream', 'origin', 'yaw', 'pitch', 'roll',
|
|
510
|
+
* 'bBoxLow', 'bBoxHigh', and 'typeDefinition'.
|
|
511
|
+
* @inheritdoc
|
|
512
|
+
* @beta
|
|
513
|
+
*/
|
|
514
|
+
static deserialize(props) {
|
|
515
|
+
const elProps = super.deserialize(props);
|
|
516
|
+
const instance = props.row;
|
|
517
|
+
elProps.category = instance.category.id;
|
|
518
|
+
const origin = instance.origin ? [instance.origin.x, instance.origin.y, instance.origin.z] : [0, 0, 0];
|
|
519
|
+
let bbox;
|
|
520
|
+
if ("bBoxHigh" in instance && instance.bBoxHigh !== undefined && "bBoxLow" in instance && instance.bBoxLow !== undefined) {
|
|
521
|
+
bbox = {
|
|
522
|
+
low: [instance.bBoxLow.x, instance.bBoxLow.y, instance.bBoxLow.z],
|
|
523
|
+
high: [instance.bBoxHigh.x, instance.bBoxHigh.y, instance.bBoxHigh.z],
|
|
524
|
+
};
|
|
525
|
+
}
|
|
526
|
+
elProps.placement = {
|
|
527
|
+
origin,
|
|
528
|
+
angles: YawPitchRollAngles.createDegrees(instance.yaw ?? 0, instance.pitch ?? 0, instance.roll ?? 0).toJSON(),
|
|
529
|
+
bbox
|
|
530
|
+
};
|
|
531
|
+
if (instance.geometryStream) {
|
|
532
|
+
elProps.geom = props.iModel[_nativeDb].convertOrUpdateGeometrySource({
|
|
533
|
+
is2d: false,
|
|
534
|
+
geom: instance.geometryStream,
|
|
535
|
+
placement: elProps.placement,
|
|
536
|
+
categoryId: elProps.category
|
|
537
|
+
}, "GeometryStreamProps", props.options?.element ?? {}).geom;
|
|
538
|
+
}
|
|
539
|
+
if (instance.typeDefinition) {
|
|
540
|
+
elProps.typeDefinition = instance.typeDefinition;
|
|
541
|
+
}
|
|
542
|
+
return elProps;
|
|
543
|
+
}
|
|
544
|
+
/**
|
|
545
|
+
* GeometricElement3d serializes 'category', 'geometryStream', 'origin', 'yaw', 'pitch', 'roll',
|
|
546
|
+
* 'bBoxLow', 'bBoxHigh', and 'typeDefinition'.
|
|
547
|
+
* @inheritdoc
|
|
548
|
+
* @beta
|
|
549
|
+
*/
|
|
550
|
+
static serialize(props, iModel) {
|
|
551
|
+
const inst = super.serialize(props, iModel);
|
|
552
|
+
inst.category = { id: props.category };
|
|
553
|
+
const assignPlacement = (placement) => {
|
|
554
|
+
if (Array.isArray(placement.origin)) {
|
|
555
|
+
inst.origin = { x: placement.origin[0], y: placement.origin[1], z: placement.origin[2] };
|
|
556
|
+
}
|
|
557
|
+
else {
|
|
558
|
+
inst.origin = placement.origin;
|
|
559
|
+
}
|
|
560
|
+
inst.yaw = placement.angles.yaw;
|
|
561
|
+
inst.pitch = placement.angles.pitch;
|
|
562
|
+
inst.roll = placement.angles.roll;
|
|
563
|
+
if (placement.bbox) {
|
|
564
|
+
if (Array.isArray(placement.bbox.low)) {
|
|
565
|
+
inst.bBoxLow = { x: placement.bbox.low[0], y: placement.bbox.low[1], z: placement.bbox.low[2] };
|
|
566
|
+
}
|
|
567
|
+
else {
|
|
568
|
+
inst.bBoxLow = placement.bbox.low;
|
|
569
|
+
}
|
|
570
|
+
if (Array.isArray(placement.bbox.high)) {
|
|
571
|
+
inst.bBoxHigh = { x: placement.bbox.high[0], y: placement.bbox.high[1], z: placement.bbox.high[2] };
|
|
572
|
+
}
|
|
573
|
+
else {
|
|
574
|
+
inst.bBoxHigh = placement.bbox.high;
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
};
|
|
578
|
+
if (props.placement) {
|
|
579
|
+
assignPlacement(props.placement);
|
|
580
|
+
}
|
|
581
|
+
if (props.elementGeometryBuilderParams) {
|
|
582
|
+
const source = iModel[_nativeDb].convertOrUpdateGeometrySource({
|
|
583
|
+
builder: props.elementGeometryBuilderParams,
|
|
584
|
+
is2d: true,
|
|
585
|
+
placement: props.placement,
|
|
586
|
+
categoryId: props.category,
|
|
587
|
+
}, "BinaryStream", {});
|
|
588
|
+
inst.geometryStream = source.geom;
|
|
589
|
+
if (source.placement) {
|
|
590
|
+
assignPlacement(source.placement);
|
|
591
|
+
}
|
|
592
|
+
}
|
|
593
|
+
if (props.geom) {
|
|
594
|
+
const source = iModel[_nativeDb].convertOrUpdateGeometrySource({
|
|
595
|
+
geom: props.geom,
|
|
596
|
+
is2d: false,
|
|
597
|
+
placement: props.placement,
|
|
598
|
+
categoryId: props.category,
|
|
599
|
+
}, "BinaryStream", {});
|
|
600
|
+
inst.geometryStream = source.geom;
|
|
601
|
+
if (source.placement) {
|
|
602
|
+
assignPlacement(source.placement);
|
|
603
|
+
}
|
|
604
|
+
}
|
|
605
|
+
inst.typeDefinition = props.typeDefinition;
|
|
606
|
+
return inst;
|
|
607
|
+
}
|
|
396
608
|
}
|
|
397
609
|
/** A 3d Graphical Element
|
|
398
610
|
* @public
|
|
@@ -421,6 +633,123 @@ export class GeometricElement2d extends GeometricElement {
|
|
|
421
633
|
val.typeDefinition = this.typeDefinition;
|
|
422
634
|
return val;
|
|
423
635
|
}
|
|
636
|
+
/**
|
|
637
|
+
* GeometricElement2d custom HandledProps includes 'category', 'geometryStream', 'origin', 'rotation',
|
|
638
|
+
* 'bBoxLow', 'bBoxHigh', and 'typeDefinition'.
|
|
639
|
+
* @inheritdoc
|
|
640
|
+
* @beta
|
|
641
|
+
*/
|
|
642
|
+
static _customHandledProps = [
|
|
643
|
+
{ propertyName: "category", source: "Class" },
|
|
644
|
+
{ propertyName: "geometryStream", source: "Class" },
|
|
645
|
+
{ propertyName: "origin", source: "Class" },
|
|
646
|
+
{ propertyName: "rotation", source: "Class" },
|
|
647
|
+
{ propertyName: "bBoxLow", source: "Class" },
|
|
648
|
+
{ propertyName: "bBoxHigh", source: "Class" },
|
|
649
|
+
{ propertyName: "typeDefinition", source: "Class" }
|
|
650
|
+
];
|
|
651
|
+
/**
|
|
652
|
+
* GeometricElement2d deserialize 'category', 'geometryStream', 'origin', 'rotation',
|
|
653
|
+
* 'bBoxLow', 'bBoxHigh', and 'typeDefinition'.
|
|
654
|
+
* @inheritdoc
|
|
655
|
+
* @beta
|
|
656
|
+
*/
|
|
657
|
+
static deserialize(props) {
|
|
658
|
+
const elProps = super.deserialize(props);
|
|
659
|
+
const instance = props.row;
|
|
660
|
+
elProps.category = instance.category.id;
|
|
661
|
+
const origin = instance.origin ? [instance.origin.x, instance.origin.y] : [0, 0];
|
|
662
|
+
let bbox;
|
|
663
|
+
if ("bBoxHigh" in instance && instance.bBoxHigh !== undefined && "bBoxLow" in instance && instance.bBoxLow !== undefined) {
|
|
664
|
+
bbox = {
|
|
665
|
+
low: [instance.bBoxLow.x, instance.bBoxLow.y],
|
|
666
|
+
high: [instance.bBoxHigh.x, instance.bBoxHigh.y],
|
|
667
|
+
};
|
|
668
|
+
}
|
|
669
|
+
elProps.placement = {
|
|
670
|
+
origin,
|
|
671
|
+
angle: instance.rotation,
|
|
672
|
+
bbox,
|
|
673
|
+
};
|
|
674
|
+
if (instance.geometryStream) {
|
|
675
|
+
const source = props.iModel[_nativeDb].convertOrUpdateGeometrySource({
|
|
676
|
+
is2d: true,
|
|
677
|
+
geom: instance.geometryStream,
|
|
678
|
+
placement: elProps.placement,
|
|
679
|
+
categoryId: elProps.category
|
|
680
|
+
}, "GeometryStreamProps", props.options?.element ?? {});
|
|
681
|
+
elProps.geom = source.geom;
|
|
682
|
+
if (source.placement) {
|
|
683
|
+
elProps.placement = source.placement;
|
|
684
|
+
}
|
|
685
|
+
}
|
|
686
|
+
if (instance.typeDefinition) {
|
|
687
|
+
elProps.typeDefinition = instance.typeDefinition;
|
|
688
|
+
}
|
|
689
|
+
return elProps;
|
|
690
|
+
}
|
|
691
|
+
/**
|
|
692
|
+
* GeometricElement2d serializes 'category', 'geometryStream', 'origin', 'rotation',
|
|
693
|
+
* 'bBoxLow', 'bBoxHigh', and 'typeDefinition'.
|
|
694
|
+
* @inheritdoc
|
|
695
|
+
* @beta
|
|
696
|
+
*/
|
|
697
|
+
static serialize(props, iModel) {
|
|
698
|
+
const inst = super.serialize(props, iModel);
|
|
699
|
+
inst.category = { id: props.category };
|
|
700
|
+
const assignPlacement = (placement) => {
|
|
701
|
+
if (Array.isArray(placement.origin)) {
|
|
702
|
+
inst.origin = { x: placement.origin[0], y: placement.origin[1] };
|
|
703
|
+
}
|
|
704
|
+
else {
|
|
705
|
+
inst.origin = placement.origin;
|
|
706
|
+
}
|
|
707
|
+
inst.rotation = placement.angle;
|
|
708
|
+
if (placement.bbox) {
|
|
709
|
+
if (Array.isArray(placement.bbox.low)) {
|
|
710
|
+
inst.bBoxLow = { x: placement.bbox.low[0], y: placement.bbox.low[1] };
|
|
711
|
+
}
|
|
712
|
+
else {
|
|
713
|
+
inst.bBoxLow = placement.bbox.low;
|
|
714
|
+
}
|
|
715
|
+
if (Array.isArray(placement.bbox.high)) {
|
|
716
|
+
inst.bBoxHigh = { x: placement.bbox.high[0], y: placement.bbox.high[1] };
|
|
717
|
+
}
|
|
718
|
+
else {
|
|
719
|
+
inst.bBoxHigh = placement.bbox.high;
|
|
720
|
+
}
|
|
721
|
+
}
|
|
722
|
+
};
|
|
723
|
+
if (props.placement) {
|
|
724
|
+
assignPlacement(props.placement);
|
|
725
|
+
}
|
|
726
|
+
if (props.elementGeometryBuilderParams) {
|
|
727
|
+
const source = iModel[_nativeDb].convertOrUpdateGeometrySource({
|
|
728
|
+
builder: props.elementGeometryBuilderParams,
|
|
729
|
+
is2d: true,
|
|
730
|
+
placement: props.placement,
|
|
731
|
+
categoryId: props.category,
|
|
732
|
+
}, "BinaryStream", {});
|
|
733
|
+
inst.geometryStream = source.geom;
|
|
734
|
+
if (source.placement) {
|
|
735
|
+
assignPlacement(source.placement);
|
|
736
|
+
}
|
|
737
|
+
}
|
|
738
|
+
if (props.geom) {
|
|
739
|
+
const source = iModel[_nativeDb].convertOrUpdateGeometrySource({
|
|
740
|
+
geom: props.geom,
|
|
741
|
+
is2d: true,
|
|
742
|
+
placement: props.placement,
|
|
743
|
+
categoryId: props.category,
|
|
744
|
+
}, "BinaryStream", {});
|
|
745
|
+
inst.geometryStream = source.geom;
|
|
746
|
+
if (source.placement) {
|
|
747
|
+
assignPlacement(source.placement);
|
|
748
|
+
}
|
|
749
|
+
}
|
|
750
|
+
inst.typeDefinition = props.typeDefinition;
|
|
751
|
+
return inst;
|
|
752
|
+
}
|
|
424
753
|
collectReferenceIds(referenceIds) {
|
|
425
754
|
super.collectReferenceIds(referenceIds);
|
|
426
755
|
if (undefined !== this.typeDefinition)
|
|
@@ -806,6 +1135,37 @@ export class DefinitionElement extends InformationContentElement {
|
|
|
806
1135
|
super(props, iModel);
|
|
807
1136
|
this.isPrivate = true === props.isPrivate;
|
|
808
1137
|
}
|
|
1138
|
+
/**
|
|
1139
|
+
* DefinitionElement custom HandledProps includes 'isPrivate'.
|
|
1140
|
+
* @inheritdoc
|
|
1141
|
+
* @beta
|
|
1142
|
+
*/
|
|
1143
|
+
static _customHandledProps = [
|
|
1144
|
+
{ propertyName: "isPrivate", source: "Class" },
|
|
1145
|
+
];
|
|
1146
|
+
/**
|
|
1147
|
+
* DefinitionElement deserializes 'isPrivate'.
|
|
1148
|
+
* @inheritdoc
|
|
1149
|
+
* @beta
|
|
1150
|
+
*/
|
|
1151
|
+
static deserialize(props) {
|
|
1152
|
+
const elProps = super.deserialize(props);
|
|
1153
|
+
if (props.row.isPrivate !== undefined)
|
|
1154
|
+
elProps.isPrivate = props.row.isPrivate;
|
|
1155
|
+
return elProps;
|
|
1156
|
+
}
|
|
1157
|
+
/**
|
|
1158
|
+
* DefinitionElement serialize 'isPrivate'.
|
|
1159
|
+
* @inheritdoc
|
|
1160
|
+
* @beta
|
|
1161
|
+
*/
|
|
1162
|
+
static serialize(props, iModel) {
|
|
1163
|
+
const inst = super.serialize(props, iModel);
|
|
1164
|
+
if (undefined !== props.isPrivate) {
|
|
1165
|
+
inst.isPrivate = props.isPrivate;
|
|
1166
|
+
}
|
|
1167
|
+
return inst;
|
|
1168
|
+
}
|
|
809
1169
|
toJSON() {
|
|
810
1170
|
const val = super.toJSON();
|
|
811
1171
|
val.isPrivate = this.isPrivate;
|
|
@@ -1199,6 +1559,36 @@ export class UrlLink extends LinkElement {
|
|
|
1199
1559
|
this.description = props.description;
|
|
1200
1560
|
this.url = props.url;
|
|
1201
1561
|
}
|
|
1562
|
+
/**
|
|
1563
|
+
* UrlLink custom HandledProps includes 'description', and 'url'.
|
|
1564
|
+
* @inheritdoc
|
|
1565
|
+
* @beta
|
|
1566
|
+
*/
|
|
1567
|
+
static _customHandledProps = [
|
|
1568
|
+
{ propertyName: "description", source: "Class" },
|
|
1569
|
+
{ propertyName: "url", source: "Class" },
|
|
1570
|
+
];
|
|
1571
|
+
/**
|
|
1572
|
+
* UrlLink deserializes 'description', and 'url'.
|
|
1573
|
+
* @inheritdoc
|
|
1574
|
+
* @beta
|
|
1575
|
+
*/
|
|
1576
|
+
static deserialize(props) {
|
|
1577
|
+
const elProps = super.deserialize(props);
|
|
1578
|
+
elProps.description = props.row.description ?? "";
|
|
1579
|
+
elProps.url = props.row.url;
|
|
1580
|
+
return elProps;
|
|
1581
|
+
}
|
|
1582
|
+
/**
|
|
1583
|
+
* UrlLink serializes 'description', and 'url'.
|
|
1584
|
+
* @inheritdoc
|
|
1585
|
+
* @beta
|
|
1586
|
+
*/
|
|
1587
|
+
static serialize(props, iModel) {
|
|
1588
|
+
const inst = super.serialize(props, iModel);
|
|
1589
|
+
inst.description = props.description;
|
|
1590
|
+
return inst;
|
|
1591
|
+
}
|
|
1202
1592
|
toJSON() {
|
|
1203
1593
|
const val = super.toJSON();
|
|
1204
1594
|
val.description = this.description;
|
|
@@ -1260,6 +1650,73 @@ export class GeometryPart extends DefinitionElement {
|
|
|
1260
1650
|
this.geom = props.geom;
|
|
1261
1651
|
this.bbox = Range3d.fromJSON(props.bbox);
|
|
1262
1652
|
}
|
|
1653
|
+
/**
|
|
1654
|
+
* GeometryPart custom HandledProps includes 'geometryStream', 'bBoxHigh', and 'bBoxLow'.
|
|
1655
|
+
* @inheritdoc
|
|
1656
|
+
* @beta
|
|
1657
|
+
*/
|
|
1658
|
+
static _customHandledProps = [
|
|
1659
|
+
{ propertyName: "geometryStream", source: "Class" },
|
|
1660
|
+
{ propertyName: "bBoxLow", source: "Class" },
|
|
1661
|
+
{ propertyName: "bBoxHigh", source: "Class" },
|
|
1662
|
+
];
|
|
1663
|
+
/**
|
|
1664
|
+
* GeometryPart deserializes 'geometryStream', 'bBoxHigh', and 'bBoxLow'.
|
|
1665
|
+
* @inheritdoc
|
|
1666
|
+
* @beta
|
|
1667
|
+
*/
|
|
1668
|
+
static deserialize(props) {
|
|
1669
|
+
const elProps = super.deserialize(props);
|
|
1670
|
+
const instance = props.row;
|
|
1671
|
+
if ("bBoxHigh" in instance && instance.bBoxHigh !== undefined && "bBoxLow" in instance && instance.bBoxLow !== undefined) {
|
|
1672
|
+
elProps.bbox = {
|
|
1673
|
+
low: [instance.bBoxLow.x, instance.bBoxLow.y, instance.bBoxLow.z],
|
|
1674
|
+
high: [instance.bBoxHigh.x, instance.bBoxHigh.y, instance.bBoxHigh.z],
|
|
1675
|
+
};
|
|
1676
|
+
}
|
|
1677
|
+
if (instance.geometryStream) {
|
|
1678
|
+
elProps.geom = props.iModel[_nativeDb].convertOrUpdateGeometryPart({
|
|
1679
|
+
geom: instance.geometryStream,
|
|
1680
|
+
is2d: false,
|
|
1681
|
+
bbox: elProps.bbox,
|
|
1682
|
+
}, "GeometryStreamProps", props.options?.element ?? {}).geom;
|
|
1683
|
+
}
|
|
1684
|
+
return elProps;
|
|
1685
|
+
}
|
|
1686
|
+
/**
|
|
1687
|
+
* GeometryPart serialize 'geometryStream', 'bBoxHigh', and 'bBoxLow'.
|
|
1688
|
+
* @inheritdoc
|
|
1689
|
+
* @beta
|
|
1690
|
+
*/
|
|
1691
|
+
static serialize(props, iModel) {
|
|
1692
|
+
const inst = super.serialize(props, iModel);
|
|
1693
|
+
if (undefined !== props.geom) {
|
|
1694
|
+
const source = inst.geometryStream = iModel[_nativeDb].convertOrUpdateGeometryPart({
|
|
1695
|
+
geom: props.geom,
|
|
1696
|
+
is2d: false,
|
|
1697
|
+
bbox: props.bbox,
|
|
1698
|
+
}, "BinaryStream", {});
|
|
1699
|
+
inst.geometryStream = source.geom;
|
|
1700
|
+
if (source.bbox) {
|
|
1701
|
+
props.bbox = source.bbox;
|
|
1702
|
+
}
|
|
1703
|
+
}
|
|
1704
|
+
if (undefined !== props.bbox) {
|
|
1705
|
+
if (Array.isArray(props.bbox.low)) {
|
|
1706
|
+
inst.bBoxLow = { x: props.bbox.low[0], y: props.bbox.low[1], z: props.bbox.low[2] };
|
|
1707
|
+
}
|
|
1708
|
+
else {
|
|
1709
|
+
inst.bBoxLow = props.bbox.low;
|
|
1710
|
+
}
|
|
1711
|
+
if (Array.isArray(props.bbox.high)) {
|
|
1712
|
+
inst.bBoxHigh = { x: props.bbox.high[0], y: props.bbox.high[1], z: props.bbox.high[2] };
|
|
1713
|
+
}
|
|
1714
|
+
else {
|
|
1715
|
+
inst.bBoxHigh = props.bbox.high;
|
|
1716
|
+
}
|
|
1717
|
+
}
|
|
1718
|
+
return inst;
|
|
1719
|
+
}
|
|
1263
1720
|
toJSON() {
|
|
1264
1721
|
const val = super.toJSON();
|
|
1265
1722
|
val.geom = this.geom;
|
|
@@ -1289,6 +1746,35 @@ export class LineStyle extends DefinitionElement {
|
|
|
1289
1746
|
this.description = props.description;
|
|
1290
1747
|
this.data = props.data;
|
|
1291
1748
|
}
|
|
1749
|
+
/**
|
|
1750
|
+
* LineStyle custom HandledProps includes 'data'.
|
|
1751
|
+
* @inheritdoc
|
|
1752
|
+
* @beta
|
|
1753
|
+
*/
|
|
1754
|
+
static _customHandledProps = [
|
|
1755
|
+
{ propertyName: "data", source: "Class" },
|
|
1756
|
+
];
|
|
1757
|
+
/**
|
|
1758
|
+
* LineStyle deserializes 'data'.
|
|
1759
|
+
* @inheritdoc
|
|
1760
|
+
* @beta
|
|
1761
|
+
*/
|
|
1762
|
+
static deserialize(props) {
|
|
1763
|
+
const elProps = super.deserialize(props);
|
|
1764
|
+
const instance = props.row;
|
|
1765
|
+
elProps.data = instance.data ?? "";
|
|
1766
|
+
return elProps;
|
|
1767
|
+
}
|
|
1768
|
+
/**
|
|
1769
|
+
* LineStyle serializes 'data'.
|
|
1770
|
+
* @inheritdoc
|
|
1771
|
+
* @beta
|
|
1772
|
+
*/
|
|
1773
|
+
static serialize(props, iModel) {
|
|
1774
|
+
const inst = super.serialize(props, iModel);
|
|
1775
|
+
inst.data = props.data;
|
|
1776
|
+
return inst;
|
|
1777
|
+
}
|
|
1292
1778
|
/** Create a Code for a LineStyle definition given a name that is meant to be unique within the scope of the specified model.
|
|
1293
1779
|
* @param iModel The IModel
|
|
1294
1780
|
* @param scopeModelId The Id of the DefinitionModel that contains the LineStyle and provides the scope for its name.
|
|
@@ -1326,6 +1812,21 @@ export class RenderTimeline extends InformationRecordElement {
|
|
|
1326
1812
|
props.script = JSON.stringify(this.scriptProps);
|
|
1327
1813
|
return props;
|
|
1328
1814
|
}
|
|
1815
|
+
/**
|
|
1816
|
+
* RenderTimeline deserialize checks if Schedule Script Element Ids need to be omitted, and if so, removes them.
|
|
1817
|
+
* @inheritdoc
|
|
1818
|
+
* @beta
|
|
1819
|
+
*/
|
|
1820
|
+
static deserialize(props) {
|
|
1821
|
+
const elProps = super.deserialize(props);
|
|
1822
|
+
const options = props.options?.element?.renderTimeline;
|
|
1823
|
+
// Omit Schedule Script Element Ids if the option is set
|
|
1824
|
+
if (options?.omitScriptElementIds && elProps.script) {
|
|
1825
|
+
const scriptProps = RenderTimeline.parseScriptProps(elProps.script);
|
|
1826
|
+
elProps.script = JSON.stringify(RenderSchedule.Script.removeScheduleScriptElementIds(scriptProps));
|
|
1827
|
+
}
|
|
1828
|
+
return elProps;
|
|
1829
|
+
}
|
|
1329
1830
|
static parseScriptProps(json) {
|
|
1330
1831
|
try {
|
|
1331
1832
|
return JSON.parse(json);
|