@itwin/core-backend 5.1.0-dev.3 → 5.1.0-dev.32
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 +38 -1
- package/lib/cjs/BackendHubAccess.js.map +1 -1
- package/lib/cjs/BackendLoggerCategory.js.map +1 -1
- package/lib/cjs/BisCoreSchema.js +1 -1
- package/lib/cjs/BisCoreSchema.js.map +1 -1
- package/lib/cjs/BlobContainerService.js.map +1 -1
- package/lib/cjs/BriefcaseManager.d.ts +10 -2
- package/lib/cjs/BriefcaseManager.d.ts.map +1 -1
- package/lib/cjs/BriefcaseManager.js +12 -0
- package/lib/cjs/BriefcaseManager.js.map +1 -1
- package/lib/cjs/CatalogDb.js.map +1 -1
- package/lib/cjs/Category.d.ts +41 -4
- package/lib/cjs/Category.d.ts.map +1 -1
- package/lib/cjs/Category.js +77 -4
- 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 +1 -1
- package/lib/cjs/CloudSqlite.js.map +1 -1
- package/lib/cjs/CodeService.js.map +1 -1
- package/lib/cjs/CodeSpecs.d.ts +1 -1
- package/lib/cjs/CodeSpecs.js +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 +9 -4
- package/lib/cjs/DisplayStyle.d.ts.map +1 -1
- package/lib/cjs/DisplayStyle.js +30 -3
- 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 +216 -60
- package/lib/cjs/Element.d.ts.map +1 -1
- package/lib/cjs/Element.js +560 -59
- package/lib/cjs/Element.js.map +1 -1
- package/lib/cjs/ElementAspect.d.ts +7 -7
- package/lib/cjs/ElementAspect.d.ts.map +1 -1
- package/lib/cjs/ElementAspect.js +7 -7
- 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 +43 -3
- package/lib/cjs/Entity.d.ts.map +1 -1
- package/lib/cjs/Entity.js +59 -1
- package/lib/cjs/Entity.js.map +1 -1
- package/lib/cjs/EntityReferences.js.map +1 -1
- package/lib/cjs/ExportGraphics.d.ts +54 -8
- package/lib/cjs/ExportGraphics.d.ts.map +1 -1
- package/lib/cjs/ExportGraphics.js +158 -59
- 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.d.ts +6 -2
- package/lib/cjs/GeographicCRSServices.d.ts.map +1 -1
- package/lib/cjs/GeographicCRSServices.js +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 +28 -43
- package/lib/cjs/IModelDb.d.ts.map +1 -1
- package/lib/cjs/IModelDb.js +177 -92
- 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 +64 -28
- package/lib/cjs/Model.d.ts.map +1 -1
- package/lib/cjs/Model.js +115 -27
- 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/Texture.d.ts +1 -1
- package/lib/cjs/Texture.js +1 -1
- package/lib/cjs/Texture.js.map +1 -1
- package/lib/cjs/TileStorage.js.map +1 -1
- package/lib/cjs/TxnManager.d.ts +4 -4
- package/lib/cjs/TxnManager.d.ts.map +1 -1
- package/lib/cjs/TxnManager.js +2 -1
- package/lib/cjs/TxnManager.js.map +1 -1
- package/lib/cjs/ViewDefinition.d.ts +140 -14
- package/lib/cjs/ViewDefinition.d.ts.map +1 -1
- package/lib/cjs/ViewDefinition.js +250 -14
- 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/annotations/FrameGeometry.d.ts +52 -0
- package/lib/cjs/annotations/FrameGeometry.d.ts.map +1 -0
- package/lib/cjs/annotations/FrameGeometry.js +250 -0
- package/lib/cjs/annotations/FrameGeometry.js.map +1 -0
- package/lib/cjs/{TextAnnotationElement.d.ts → annotations/TextAnnotationElement.d.ts} +6 -11
- package/lib/cjs/annotations/TextAnnotationElement.d.ts.map +1 -0
- package/lib/cjs/{TextAnnotationElement.js → annotations/TextAnnotationElement.js} +20 -26
- package/lib/cjs/annotations/TextAnnotationElement.js.map +1 -0
- package/lib/cjs/annotations/TextAnnotationGeometry.d.ts +31 -0
- package/lib/cjs/annotations/TextAnnotationGeometry.d.ts.map +1 -0
- package/lib/cjs/annotations/TextAnnotationGeometry.js +83 -0
- package/lib/cjs/annotations/TextAnnotationGeometry.js.map +1 -0
- package/lib/cjs/annotations/TextBlockGeometry.d.ts +16 -0
- package/lib/cjs/annotations/TextBlockGeometry.d.ts.map +1 -0
- package/lib/cjs/{TextAnnotationGeometry.js → annotations/TextBlockGeometry.js} +11 -68
- package/lib/cjs/annotations/TextBlockGeometry.js.map +1 -0
- package/lib/cjs/{TextAnnotationLayout.d.ts → annotations/TextBlockLayout.d.ts} +19 -7
- package/lib/cjs/annotations/TextBlockLayout.d.ts.map +1 -0
- package/lib/cjs/{TextAnnotationLayout.js → annotations/TextBlockLayout.js} +19 -7
- package/lib/cjs/annotations/TextBlockLayout.js.map +1 -0
- 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 +5 -3
- package/lib/cjs/core-backend.d.ts.map +1 -1
- package/lib/cjs/core-backend.js +5 -6
- 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 +1 -1
- package/lib/esm/BisCoreSchema.js.map +1 -1
- package/lib/esm/BlobContainerService.js.map +1 -1
- package/lib/esm/BriefcaseManager.d.ts +10 -2
- package/lib/esm/BriefcaseManager.d.ts.map +1 -1
- package/lib/esm/BriefcaseManager.js +12 -0
- package/lib/esm/BriefcaseManager.js.map +1 -1
- package/lib/esm/CatalogDb.js.map +1 -1
- package/lib/esm/Category.d.ts +41 -4
- package/lib/esm/Category.d.ts.map +1 -1
- package/lib/esm/Category.js +77 -4
- 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 +1 -1
- package/lib/esm/CloudSqlite.js.map +1 -1
- package/lib/esm/CodeService.js.map +1 -1
- package/lib/esm/CodeSpecs.d.ts +1 -1
- package/lib/esm/CodeSpecs.js +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 +9 -4
- package/lib/esm/DisplayStyle.d.ts.map +1 -1
- package/lib/esm/DisplayStyle.js +30 -3
- 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 +216 -60
- package/lib/esm/Element.d.ts.map +1 -1
- package/lib/esm/Element.js +563 -62
- package/lib/esm/Element.js.map +1 -1
- package/lib/esm/ElementAspect.d.ts +7 -7
- package/lib/esm/ElementAspect.d.ts.map +1 -1
- package/lib/esm/ElementAspect.js +7 -7
- 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 +43 -3
- package/lib/esm/Entity.d.ts.map +1 -1
- package/lib/esm/Entity.js +59 -1
- package/lib/esm/Entity.js.map +1 -1
- package/lib/esm/EntityReferences.js.map +1 -1
- package/lib/esm/ExportGraphics.d.ts +54 -8
- package/lib/esm/ExportGraphics.d.ts.map +1 -1
- package/lib/esm/ExportGraphics.js +156 -58
- 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.d.ts +6 -2
- package/lib/esm/GeographicCRSServices.d.ts.map +1 -1
- package/lib/esm/GeographicCRSServices.js +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 +28 -43
- package/lib/esm/IModelDb.d.ts.map +1 -1
- package/lib/esm/IModelDb.js +180 -95
- 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 +64 -28
- package/lib/esm/Model.d.ts.map +1 -1
- package/lib/esm/Model.js +116 -28
- 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/Texture.d.ts +1 -1
- package/lib/esm/Texture.js +1 -1
- package/lib/esm/Texture.js.map +1 -1
- package/lib/esm/TileStorage.js.map +1 -1
- package/lib/esm/TxnManager.d.ts +4 -4
- package/lib/esm/TxnManager.d.ts.map +1 -1
- package/lib/esm/TxnManager.js +2 -1
- package/lib/esm/TxnManager.js.map +1 -1
- package/lib/esm/ViewDefinition.d.ts +140 -14
- package/lib/esm/ViewDefinition.d.ts.map +1 -1
- package/lib/esm/ViewDefinition.js +251 -15
- 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/annotations/FrameGeometry.d.ts +52 -0
- package/lib/esm/annotations/FrameGeometry.d.ts.map +1 -0
- package/lib/esm/annotations/FrameGeometry.js +245 -0
- package/lib/esm/annotations/FrameGeometry.js.map +1 -0
- package/lib/esm/{TextAnnotationElement.d.ts → annotations/TextAnnotationElement.d.ts} +6 -11
- package/lib/esm/annotations/TextAnnotationElement.d.ts.map +1 -0
- package/lib/esm/{TextAnnotationElement.js → annotations/TextAnnotationElement.js} +22 -28
- package/lib/esm/annotations/TextAnnotationElement.js.map +1 -0
- package/lib/esm/annotations/TextAnnotationGeometry.d.ts +31 -0
- package/lib/esm/annotations/TextAnnotationGeometry.d.ts.map +1 -0
- package/lib/esm/annotations/TextAnnotationGeometry.js +80 -0
- package/lib/esm/annotations/TextAnnotationGeometry.js.map +1 -0
- package/lib/esm/annotations/TextBlockGeometry.d.ts +16 -0
- package/lib/esm/annotations/TextBlockGeometry.d.ts.map +1 -0
- package/lib/esm/{TextAnnotationGeometry.js → annotations/TextBlockGeometry.js} +11 -68
- package/lib/esm/annotations/TextBlockGeometry.js.map +1 -0
- package/lib/esm/{TextAnnotationLayout.d.ts → annotations/TextBlockLayout.d.ts} +19 -7
- package/lib/esm/annotations/TextBlockLayout.d.ts.map +1 -0
- package/lib/esm/{TextAnnotationLayout.js → annotations/TextBlockLayout.js} +19 -7
- package/lib/esm/annotations/TextBlockLayout.js.map +1 -0
- package/lib/esm/core-backend.d.ts +5 -3
- package/lib/esm/core-backend.d.ts.map +1 -1
- package/lib/esm/core-backend.js +5 -3
- 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 +190 -1025
- package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
- package/lib/esm/test/annotations/TextBlock.test.d.ts +2 -0
- package/lib/esm/test/annotations/TextBlock.test.d.ts.map +1 -0
- package/lib/esm/test/annotations/TextBlock.test.js +969 -0
- package/lib/esm/test/annotations/TextBlock.test.js.map +1 -0
- 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 +86 -65
- 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 +68 -16
- 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 +23 -9
- 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 +67 -15
- 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/IModelLimits.test.d.ts +2 -0
- package/lib/esm/test/standalone/IModelLimits.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/IModelLimits.test.js +103 -0
- package/lib/esm/test/standalone/IModelLimits.test.js.map +1 -0
- 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 +20 -1
- 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/cjs/TextAnnotationElement.d.ts.map +0 -1
- package/lib/cjs/TextAnnotationElement.js.map +0 -1
- package/lib/cjs/TextAnnotationGeometry.d.ts +0 -32
- package/lib/cjs/TextAnnotationGeometry.d.ts.map +0 -1
- package/lib/cjs/TextAnnotationGeometry.js.map +0 -1
- package/lib/cjs/TextAnnotationLayout.d.ts.map +0 -1
- package/lib/cjs/TextAnnotationLayout.js.map +0 -1
- package/lib/esm/TextAnnotationElement.d.ts.map +0 -1
- package/lib/esm/TextAnnotationElement.js.map +0 -1
- package/lib/esm/TextAnnotationGeometry.d.ts +0 -32
- package/lib/esm/TextAnnotationGeometry.d.ts.map +0 -1
- package/lib/esm/TextAnnotationGeometry.js.map +0 -1
- package/lib/esm/TextAnnotationLayout.d.ts.map +0 -1
- package/lib/esm/TextAnnotationLayout.js.map +0 -1
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,
|
|
@@ -34,7 +34,7 @@ import { _elementWasCreated, _verifyChannel } from "./internal/Symbols";
|
|
|
34
34
|
* * [Element Fundamentals]($docs/bis/guide/fundamentals/element-fundamentals.md)
|
|
35
35
|
* * [Working with schemas and elements in TypeScript]($docs/learning/backend/SchemasAndElementsInTypeScript.md)
|
|
36
36
|
* * [Creating elements]($docs/learning/backend/CreateElements.md)
|
|
37
|
-
* @public
|
|
37
|
+
* @public @preview
|
|
38
38
|
*/
|
|
39
39
|
export class Element extends Entity {
|
|
40
40
|
static get className() { return "Element"; }
|
|
@@ -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.
|
|
@@ -327,7 +398,7 @@ export class Element extends Entity {
|
|
|
327
398
|
delete() { this.iModel.elements.deleteElement(this.id); }
|
|
328
399
|
}
|
|
329
400
|
/** An abstract base class to model real world entities that intrinsically have geometry.
|
|
330
|
-
* @public
|
|
401
|
+
* @public @preview
|
|
331
402
|
*/
|
|
332
403
|
export class GeometricElement extends Element {
|
|
333
404
|
static get className() { return "GeometricElement"; }
|
|
@@ -366,10 +437,34 @@ 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).
|
|
372
|
-
* @public
|
|
467
|
+
* @public @preview
|
|
373
468
|
*/
|
|
374
469
|
export class GeometricElement3d extends GeometricElement {
|
|
375
470
|
static get className() { return "GeometricElement3d"; }
|
|
@@ -393,16 +488,133 @@ 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
|
-
* @public
|
|
610
|
+
* @public @preview
|
|
399
611
|
*/
|
|
400
612
|
export class GraphicalElement3d extends GeometricElement3d {
|
|
401
613
|
static get className() { return "GraphicalElement3d"; }
|
|
402
614
|
constructor(props, iModel) { super(props, iModel); }
|
|
403
615
|
}
|
|
404
616
|
/** An abstract base class to model information entities that intrinsically have 2d geometry.
|
|
405
|
-
* @public
|
|
617
|
+
* @public @preview
|
|
406
618
|
*/
|
|
407
619
|
export class GeometricElement2d extends GeometricElement {
|
|
408
620
|
static get className() { return "GeometricElement2d"; }
|
|
@@ -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)
|
|
@@ -428,35 +757,35 @@ export class GeometricElement2d extends GeometricElement {
|
|
|
428
757
|
}
|
|
429
758
|
}
|
|
430
759
|
/** An abstract base class for 2d Geometric Elements that are used to convey information within graphical presentations (like drawings).
|
|
431
|
-
* @public
|
|
760
|
+
* @public @preview
|
|
432
761
|
*/
|
|
433
762
|
export class GraphicalElement2d extends GeometricElement2d {
|
|
434
763
|
static get className() { return "GraphicalElement2d"; }
|
|
435
764
|
constructor(props, iModel) { super(props, iModel); }
|
|
436
765
|
}
|
|
437
766
|
/** 2d element used to annotate drawings and sheets.
|
|
438
|
-
* @public
|
|
767
|
+
* @public @preview
|
|
439
768
|
*/
|
|
440
769
|
export class AnnotationElement2d extends GraphicalElement2d {
|
|
441
770
|
static get className() { return "AnnotationElement2d"; }
|
|
442
771
|
constructor(props, iModel) { super(props, iModel); }
|
|
443
772
|
}
|
|
444
773
|
/** 2d element used to persist graphics for use in drawings.
|
|
445
|
-
* @public
|
|
774
|
+
* @public @preview
|
|
446
775
|
*/
|
|
447
776
|
export class DrawingGraphic extends GraphicalElement2d {
|
|
448
777
|
static get className() { return "DrawingGraphic"; }
|
|
449
778
|
constructor(props, iModel) { super(props, iModel); }
|
|
450
779
|
}
|
|
451
780
|
/** An Element that occupies real world space. Its coordinates are in the project space of its iModel.
|
|
452
|
-
* @public
|
|
781
|
+
* @public @preview
|
|
453
782
|
*/
|
|
454
783
|
export class SpatialElement extends GeometricElement3d {
|
|
455
784
|
static get className() { return "SpatialElement"; }
|
|
456
785
|
constructor(props, iModel) { super(props, iModel); }
|
|
457
786
|
}
|
|
458
787
|
/** An Element that is spatially located, has mass, and can be *touched*.
|
|
459
|
-
* @public
|
|
788
|
+
* @public @preview
|
|
460
789
|
*/
|
|
461
790
|
export class PhysicalElement extends SpatialElement {
|
|
462
791
|
static get className() { return "PhysicalElement"; }
|
|
@@ -473,14 +802,14 @@ export class PhysicalElement extends SpatialElement {
|
|
|
473
802
|
}
|
|
474
803
|
}
|
|
475
804
|
/** Identifies a *tracked* real world location but has no mass and cannot be *touched*.
|
|
476
|
-
* @public
|
|
805
|
+
* @public @preview
|
|
477
806
|
*/
|
|
478
807
|
export class SpatialLocationElement extends SpatialElement {
|
|
479
808
|
static get className() { return "SpatialLocationElement"; }
|
|
480
809
|
constructor(props, iModel) { super(props, iModel); }
|
|
481
810
|
}
|
|
482
811
|
/** A Volume Element is a Spatial Location Element that is restricted to defining a volume.
|
|
483
|
-
* @public
|
|
812
|
+
* @public @preview
|
|
484
813
|
*/
|
|
485
814
|
export class VolumeElement extends SpatialLocationElement {
|
|
486
815
|
static get className() { return "VolumeElement"; }
|
|
@@ -489,7 +818,7 @@ export class VolumeElement extends SpatialLocationElement {
|
|
|
489
818
|
/** A SectionDrawingLocation element identifies the location of a [[SectionDrawing]] in the context of a [[SpatialModel]],
|
|
490
819
|
* enabling [HyperModeling]($hypermodeling).
|
|
491
820
|
* @note The associated ECClass was added to the BisCore schema in version 1.0.11.
|
|
492
|
-
* @public
|
|
821
|
+
* @public @preview
|
|
493
822
|
*/
|
|
494
823
|
export class SectionDrawingLocation extends SpatialLocationElement {
|
|
495
824
|
/** The Id of the [[ViewDefinition]] to which this location refers. */
|
|
@@ -509,7 +838,7 @@ export class SectionDrawingLocation extends SpatialLocationElement {
|
|
|
509
838
|
/** Information Content Element is an abstract base class for modeling pure information entities. Only the
|
|
510
839
|
* core framework should directly subclass from Information Content Element. Domain and application developers
|
|
511
840
|
* should start with the most appropriate subclass of Information Content Element.
|
|
512
|
-
* @public
|
|
841
|
+
* @public @preview
|
|
513
842
|
*/
|
|
514
843
|
export class InformationContentElement extends Element {
|
|
515
844
|
static get className() { return "InformationContentElement"; }
|
|
@@ -524,14 +853,14 @@ export class DriverBundleElement extends InformationContentElement {
|
|
|
524
853
|
constructor(props, iModel) { super(props, iModel); }
|
|
525
854
|
}
|
|
526
855
|
/** Information Reference is an abstract base class for modeling entities whose main purpose is to reference something else.
|
|
527
|
-
* @public
|
|
856
|
+
* @public @preview
|
|
528
857
|
*/
|
|
529
858
|
export class InformationReferenceElement extends InformationContentElement {
|
|
530
859
|
static get className() { return "InformationReferenceElement"; }
|
|
531
860
|
constructor(props, iModel) { super(props, iModel); }
|
|
532
861
|
}
|
|
533
862
|
/** A Subject is an information element that describes what this repository (or part thereof) is about.
|
|
534
|
-
* @public
|
|
863
|
+
* @public @preview
|
|
535
864
|
*/
|
|
536
865
|
export class Subject extends InformationReferenceElement {
|
|
537
866
|
static get className() { return "Subject"; }
|
|
@@ -588,14 +917,14 @@ export class Subject extends InformationReferenceElement {
|
|
|
588
917
|
* For example, a will is a legal document. The will published into a PDF file is an ElectronicDocumentCopy.
|
|
589
918
|
* The will printed onto paper is a PrintedDocumentCopy.
|
|
590
919
|
* In this example, the Document only identifies, names, and tracks the content of the will.
|
|
591
|
-
* @public
|
|
920
|
+
* @public @preview
|
|
592
921
|
*/
|
|
593
922
|
export class Document extends InformationContentElement {
|
|
594
923
|
static get className() { return "Document"; }
|
|
595
924
|
constructor(props, iModel) { super(props, iModel); }
|
|
596
925
|
}
|
|
597
926
|
/** A document that represents a drawing, that is, a two-dimensional graphical representation of engineering data. A Drawing element is usually modelled by a [[DrawingModel]].
|
|
598
|
-
* @public
|
|
927
|
+
* @public @preview
|
|
599
928
|
*/
|
|
600
929
|
export class Drawing extends Document {
|
|
601
930
|
_scaleFactor;
|
|
@@ -603,7 +932,7 @@ export class Drawing extends Document {
|
|
|
603
932
|
* size of the [ViewAttachment]($backend) created when attaching the [Drawing]($backend) to a [Sheet]($backend).
|
|
604
933
|
* Default: 1.
|
|
605
934
|
* @note Attempting to set this property to a value less than or equal to zero will produce an exception.
|
|
606
|
-
* @public
|
|
935
|
+
* @public @preview
|
|
607
936
|
*/
|
|
608
937
|
get scaleFactor() { return this._scaleFactor; }
|
|
609
938
|
set scaleFactor(factor) {
|
|
@@ -673,7 +1002,7 @@ export class Drawing extends Document {
|
|
|
673
1002
|
/** A document that represents a section drawing, that is, a graphical documentation derived from a planar
|
|
674
1003
|
* section of a spatial view. A SectionDrawing element is modelled by a [[SectionDrawingModel]] or a [[GraphicalModel3d]].
|
|
675
1004
|
* A [[SectionDrawingLocation]] can associate the drawing with a spatial location, enabling [HyperModeling]($hypermodeling).
|
|
676
|
-
* @public
|
|
1005
|
+
* @public @preview
|
|
677
1006
|
*/
|
|
678
1007
|
export class SectionDrawing extends Drawing {
|
|
679
1008
|
/** The type of section used to generate the drawing. */
|
|
@@ -724,7 +1053,7 @@ export class SectionDrawing extends Drawing {
|
|
|
724
1053
|
}
|
|
725
1054
|
}
|
|
726
1055
|
/** The template for a SheetBorder
|
|
727
|
-
* @public
|
|
1056
|
+
* @public @preview
|
|
728
1057
|
*/
|
|
729
1058
|
export class SheetBorderTemplate extends Document {
|
|
730
1059
|
static get className() { return "SheetBorderTemplate"; }
|
|
@@ -737,7 +1066,7 @@ export class SheetBorderTemplate extends Document {
|
|
|
737
1066
|
}
|
|
738
1067
|
}
|
|
739
1068
|
/** The template for a [[Sheet]]
|
|
740
|
-
* @public
|
|
1069
|
+
* @public @preview
|
|
741
1070
|
*/
|
|
742
1071
|
export class SheetTemplate extends Document {
|
|
743
1072
|
static get className() { return "SheetTemplate"; }
|
|
@@ -757,7 +1086,7 @@ export class SheetTemplate extends Document {
|
|
|
757
1086
|
}
|
|
758
1087
|
}
|
|
759
1088
|
/** A digital representation of a *sheet of paper*. Modeled by a [[SheetModel]].
|
|
760
|
-
* @public
|
|
1089
|
+
* @public @preview
|
|
761
1090
|
*/
|
|
762
1091
|
export class Sheet extends Document {
|
|
763
1092
|
static get className() { return "Sheet"; }
|
|
@@ -789,14 +1118,14 @@ export class Sheet extends Document {
|
|
|
789
1118
|
}
|
|
790
1119
|
/** Information Record Element is an abstract base class for modeling information records. Information Record
|
|
791
1120
|
* Element is the default choice if no other subclass of Information Content Element makes sense.
|
|
792
|
-
* @public
|
|
1121
|
+
* @public @preview
|
|
793
1122
|
*/
|
|
794
1123
|
export class InformationRecordElement extends InformationContentElement {
|
|
795
1124
|
static get className() { return "InformationRecordElement"; }
|
|
796
1125
|
constructor(props, iModel) { super(props, iModel); }
|
|
797
1126
|
}
|
|
798
1127
|
/** A Definition Element holds configuration-related information that is meant to be referenced / shared.
|
|
799
|
-
* @public
|
|
1128
|
+
* @public @preview
|
|
800
1129
|
*/
|
|
801
1130
|
export class DefinitionElement extends InformationContentElement {
|
|
802
1131
|
static get className() { return "DefinitionElement"; }
|
|
@@ -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;
|
|
@@ -814,14 +1174,14 @@ export class DefinitionElement extends InformationContentElement {
|
|
|
814
1174
|
}
|
|
815
1175
|
/** This abstract class unifies DefinitionGroup and DefinitionContainer for relationship endpoint purposes.
|
|
816
1176
|
* @note The associated ECClass was added to the BisCore schema in version 1.0.10
|
|
817
|
-
* @public
|
|
1177
|
+
* @public @preview
|
|
818
1178
|
*/
|
|
819
1179
|
export class DefinitionSet extends DefinitionElement {
|
|
820
1180
|
static get className() { return "DefinitionSet"; }
|
|
821
1181
|
}
|
|
822
1182
|
/** A DefinitionContainer exclusively owns a set of DefinitionElements contained within its sub-model (of type DefinitionModel).
|
|
823
1183
|
* @note The associated ECClass was added to the BisCore schema in version 1.0.10
|
|
824
|
-
* @public
|
|
1184
|
+
* @public @preview
|
|
825
1185
|
*/
|
|
826
1186
|
export class DefinitionContainer extends DefinitionSet {
|
|
827
1187
|
static get className() { return "DefinitionContainer"; }
|
|
@@ -866,7 +1226,7 @@ export class DefinitionContainer extends DefinitionSet {
|
|
|
866
1226
|
}
|
|
867
1227
|
/** A non-exclusive set of DefinitionElements grouped using the DefinitionGroupGroupsDefinitions relationship.
|
|
868
1228
|
* @note The associated ECClass was added to the BisCore schema in version 1.0.10
|
|
869
|
-
* @public
|
|
1229
|
+
* @public @preview
|
|
870
1230
|
*/
|
|
871
1231
|
export class DefinitionGroup extends DefinitionSet {
|
|
872
1232
|
static get className() { return "DefinitionGroup"; }
|
|
@@ -890,7 +1250,7 @@ export class DefinitionGroup extends DefinitionSet {
|
|
|
890
1250
|
}
|
|
891
1251
|
}
|
|
892
1252
|
/** Defines a set of properties (the *type*) that may be associated with an element.
|
|
893
|
-
* @public
|
|
1253
|
+
* @public @preview
|
|
894
1254
|
*/
|
|
895
1255
|
export class TypeDefinitionElement extends DefinitionElement {
|
|
896
1256
|
static get className() { return "TypeDefinitionElement"; }
|
|
@@ -915,7 +1275,7 @@ export class RecipeDefinitionElement extends DefinitionElement {
|
|
|
915
1275
|
/** Defines a set of properties (the *type*) that can be associated with a Physical Element. A Physical
|
|
916
1276
|
* Type has a strong correlation with something that can be ordered from a catalog since all instances
|
|
917
1277
|
* share a common set of properties.
|
|
918
|
-
* @public
|
|
1278
|
+
* @public @preview
|
|
919
1279
|
*/
|
|
920
1280
|
export class PhysicalType extends TypeDefinitionElement {
|
|
921
1281
|
static get className() { return "PhysicalType"; }
|
|
@@ -941,7 +1301,7 @@ export class PhysicalType extends TypeDefinitionElement {
|
|
|
941
1301
|
}
|
|
942
1302
|
}
|
|
943
1303
|
/** Defines a set of properties (the *type*) that can be associated with a spatial location.
|
|
944
|
-
* @public
|
|
1304
|
+
* @public @preview
|
|
945
1305
|
*/
|
|
946
1306
|
export class SpatialLocationType extends TypeDefinitionElement {
|
|
947
1307
|
static get className() { return "SpatialLocationType"; }
|
|
@@ -1006,7 +1366,7 @@ export class TemplateRecipe3d extends RecipeDefinitionElement {
|
|
|
1006
1366
|
}
|
|
1007
1367
|
}
|
|
1008
1368
|
/** Defines a set of properties (the *type*) that can be associated with a 2D Graphical Element.
|
|
1009
|
-
* @public
|
|
1369
|
+
* @public @preview
|
|
1010
1370
|
*/
|
|
1011
1371
|
export class GraphicalType2d extends TypeDefinitionElement {
|
|
1012
1372
|
static get className() { return "GraphicalType2d"; }
|
|
@@ -1073,7 +1433,7 @@ export class TemplateRecipe2d extends RecipeDefinitionElement {
|
|
|
1073
1433
|
/** An abstract base class for elements that establishes a particular modeling perspective for its parent Subject.
|
|
1074
1434
|
* Instances are always sub-modeled by a specialization of Model of the appropriate modeling perspective.
|
|
1075
1435
|
* @see [iModel Information Hierarchy]($docs/bis/guide/data-organization/top-of-the-world), [[Subject]], [[Model]]
|
|
1076
|
-
* @public
|
|
1436
|
+
* @public @preview
|
|
1077
1437
|
*/
|
|
1078
1438
|
export class InformationPartitionElement extends InformationContentElement {
|
|
1079
1439
|
static get className() { return "InformationPartitionElement"; }
|
|
@@ -1099,7 +1459,7 @@ export class InformationPartitionElement extends InformationContentElement {
|
|
|
1099
1459
|
/** A DefinitionPartition element establishes a *Definition* modeling perspective for its parent Subject.
|
|
1100
1460
|
* A DefinitionPartition is always sub-modeled by a DefinitionModel.
|
|
1101
1461
|
* @see [[DefinitionModel]]
|
|
1102
|
-
* @public
|
|
1462
|
+
* @public @preview
|
|
1103
1463
|
*/
|
|
1104
1464
|
export class DefinitionPartition extends InformationPartitionElement {
|
|
1105
1465
|
static get className() { return "DefinitionPartition"; }
|
|
@@ -1107,7 +1467,7 @@ export class DefinitionPartition extends InformationPartitionElement {
|
|
|
1107
1467
|
/** A DocumentPartition element establishes a *Document* modeling perspective for its parent Subject.
|
|
1108
1468
|
* A DocumentPartition is always sub-modeled by a DocumentListModel.
|
|
1109
1469
|
* @see [[DocumentListModel]]
|
|
1110
|
-
* @public
|
|
1470
|
+
* @public @preview
|
|
1111
1471
|
*/
|
|
1112
1472
|
export class DocumentPartition extends InformationPartitionElement {
|
|
1113
1473
|
static get className() { return "DocumentPartition"; }
|
|
@@ -1115,7 +1475,7 @@ export class DocumentPartition extends InformationPartitionElement {
|
|
|
1115
1475
|
/** A GroupInformationPartition element establishes a *Group Information* modeling perspective for its parent Subject.
|
|
1116
1476
|
* A GroupInformationPartition is always sub-modeled by a GroupInformationModel.
|
|
1117
1477
|
* @see [[GroupInformationModel]]
|
|
1118
|
-
* @public
|
|
1478
|
+
* @public @preview
|
|
1119
1479
|
*/
|
|
1120
1480
|
export class GroupInformationPartition extends InformationPartitionElement {
|
|
1121
1481
|
static get className() { return "GroupInformationPartition"; }
|
|
@@ -1124,7 +1484,7 @@ export class GroupInformationPartition extends InformationPartitionElement {
|
|
|
1124
1484
|
* A GraphicalPartition3d is always sub-modeled by a GraphicalModel3d.
|
|
1125
1485
|
* @note The associated ECClass was added to the BisCore schema in version 1.0.8
|
|
1126
1486
|
* @see [[GraphicalModel3d]]
|
|
1127
|
-
* @public
|
|
1487
|
+
* @public @preview
|
|
1128
1488
|
*/
|
|
1129
1489
|
export class GraphicalPartition3d extends InformationPartitionElement {
|
|
1130
1490
|
static get className() { return "GraphicalPartition3d"; }
|
|
@@ -1132,21 +1492,21 @@ export class GraphicalPartition3d extends InformationPartitionElement {
|
|
|
1132
1492
|
/** An InformationRecordPartition element establishes a *Information Record* modeling perspective for its parent Subject.
|
|
1133
1493
|
* A InformationRecordPartition is always sub-modeled by an InformationRecordModel.
|
|
1134
1494
|
* @see [[InformationRecordModel]]
|
|
1135
|
-
* @public
|
|
1495
|
+
* @public @preview
|
|
1136
1496
|
*/
|
|
1137
1497
|
export class InformationRecordPartition extends InformationPartitionElement {
|
|
1138
1498
|
static get className() { return "InformationRecordPartition"; }
|
|
1139
1499
|
}
|
|
1140
1500
|
/** A LinkPartition element establishes a *Link* modeling perspective for its parent Subject. A LinkPartition is always sub-modeled by a LinkModel.
|
|
1141
1501
|
* @see [[LinkModel]]
|
|
1142
|
-
* @public
|
|
1502
|
+
* @public @preview
|
|
1143
1503
|
*/
|
|
1144
1504
|
export class LinkPartition extends InformationPartitionElement {
|
|
1145
1505
|
static get className() { return "LinkPartition"; }
|
|
1146
1506
|
}
|
|
1147
1507
|
/** A PhysicalPartition element establishes a *Physical* modeling perspective for its parent Subject. A PhysicalPartition is always sub-modeled by a PhysicalModel.
|
|
1148
1508
|
* @see [[PhysicalModel]]
|
|
1149
|
-
* @public
|
|
1509
|
+
* @public @preview
|
|
1150
1510
|
*/
|
|
1151
1511
|
export class PhysicalPartition extends InformationPartitionElement {
|
|
1152
1512
|
static get className() { return "PhysicalPartition"; }
|
|
@@ -1154,7 +1514,7 @@ export class PhysicalPartition extends InformationPartitionElement {
|
|
|
1154
1514
|
/** A SpatialLocationPartition element establishes a *SpatialLocation* modeling perspective for its parent Subject.
|
|
1155
1515
|
* A SpatialLocationPartition is always sub-modeled by a SpatialLocationModel.
|
|
1156
1516
|
* @see [[SpatialLocationModel]]
|
|
1157
|
-
* @public
|
|
1517
|
+
* @public @preview
|
|
1158
1518
|
*/
|
|
1159
1519
|
export class SpatialLocationPartition extends InformationPartitionElement {
|
|
1160
1520
|
static get className() { return "SpatialLocationPartition"; }
|
|
@@ -1167,13 +1527,13 @@ export class SheetIndexPartition extends InformationPartitionElement {
|
|
|
1167
1527
|
static get className() { return "SheetIndexPartition"; }
|
|
1168
1528
|
}
|
|
1169
1529
|
/** Group Information is an abstract base class for modeling entities whose main purpose is to reference a group of related elements.
|
|
1170
|
-
* @public
|
|
1530
|
+
* @public @preview
|
|
1171
1531
|
*/
|
|
1172
1532
|
export class GroupInformationElement extends InformationReferenceElement {
|
|
1173
1533
|
static get className() { return "GroupInformationElement"; }
|
|
1174
1534
|
}
|
|
1175
1535
|
/** An information element that specifies a link.
|
|
1176
|
-
* @public
|
|
1536
|
+
* @public @preview
|
|
1177
1537
|
*/
|
|
1178
1538
|
export class LinkElement extends InformationReferenceElement {
|
|
1179
1539
|
static get className() { return "LinkElement"; }
|
|
@@ -1188,7 +1548,7 @@ export class LinkElement extends InformationReferenceElement {
|
|
|
1188
1548
|
}
|
|
1189
1549
|
}
|
|
1190
1550
|
/** An information element that specifies a URL link.
|
|
1191
|
-
* @public
|
|
1551
|
+
* @public @preview
|
|
1192
1552
|
*/
|
|
1193
1553
|
export class UrlLink extends LinkElement {
|
|
1194
1554
|
static get className() { return "UrlLink"; }
|
|
@@ -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;
|
|
@@ -1214,7 +1604,7 @@ export class FolderLink extends UrlLink {
|
|
|
1214
1604
|
static get className() { return "FolderLink"; }
|
|
1215
1605
|
}
|
|
1216
1606
|
/** An information element that links to a repository.
|
|
1217
|
-
* @public
|
|
1607
|
+
* @public @preview
|
|
1218
1608
|
*/
|
|
1219
1609
|
export class RepositoryLink extends UrlLink {
|
|
1220
1610
|
static get className() { return "RepositoryLink"; }
|
|
@@ -1234,7 +1624,7 @@ export class RepositoryLink extends UrlLink {
|
|
|
1234
1624
|
}
|
|
1235
1625
|
}
|
|
1236
1626
|
/** An information element that links to an embedded file.
|
|
1237
|
-
* @public
|
|
1627
|
+
* @public @preview
|
|
1238
1628
|
*/
|
|
1239
1629
|
export class EmbeddedFileLink extends LinkElement {
|
|
1240
1630
|
static get className() { return "EmbeddedFileLink"; }
|
|
@@ -1242,14 +1632,14 @@ export class EmbeddedFileLink extends LinkElement {
|
|
|
1242
1632
|
/** A real world entity is modeled as a Role Element when a set of external circumstances define an important
|
|
1243
1633
|
* role (one that is worth tracking) that is not intrinsic to the entity playing the role. For example,
|
|
1244
1634
|
* a person can play the role of a teacher or a rock can play the role of a boundary marker.
|
|
1245
|
-
* @public
|
|
1635
|
+
* @public @preview
|
|
1246
1636
|
*/
|
|
1247
1637
|
export class RoleElement extends Element {
|
|
1248
1638
|
static get className() { return "RoleElement"; }
|
|
1249
1639
|
}
|
|
1250
1640
|
/** A Definition Element that specifies a collection of geometry that is meant to be reused across Geometric
|
|
1251
1641
|
* Element instances. Leveraging Geometry Parts can help reduce file size and improve display performance.
|
|
1252
|
-
* @public
|
|
1642
|
+
* @public @preview
|
|
1253
1643
|
*/
|
|
1254
1644
|
export class GeometryPart extends DefinitionElement {
|
|
1255
1645
|
static get className() { return "GeometryPart"; }
|
|
@@ -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;
|
|
@@ -1278,7 +1735,7 @@ export class GeometryPart extends DefinitionElement {
|
|
|
1278
1735
|
}
|
|
1279
1736
|
}
|
|
1280
1737
|
/** The definition element for a line style
|
|
1281
|
-
* @public
|
|
1738
|
+
* @public @preview
|
|
1282
1739
|
*/
|
|
1283
1740
|
export class LineStyle extends DefinitionElement {
|
|
1284
1741
|
static get className() { return "LineStyle"; }
|
|
@@ -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.
|
|
@@ -1301,7 +1787,7 @@ export class LineStyle extends DefinitionElement {
|
|
|
1301
1787
|
}
|
|
1302
1788
|
/** Describes how to animate a view of a [[GeometricModel]] to show change over time using a [RenderSchedule.Script]($common).
|
|
1303
1789
|
* @note This class was introduced in version 01.00.13 of the BisCore ECSchema. It should only be used with [[IModelDb]]s containing that version or newer.
|
|
1304
|
-
* @public
|
|
1790
|
+
* @public @preview
|
|
1305
1791
|
*/
|
|
1306
1792
|
export class RenderTimeline extends InformationRecordElement {
|
|
1307
1793
|
static get className() { return "RenderTimeline"; }
|
|
@@ -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);
|