@itwin/core-backend 4.0.0-dev.10 → 4.0.0-dev.100

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.
Files changed (270) hide show
  1. package/CHANGELOG.md +68 -1
  2. package/lib/cjs/BackendHubAccess.d.ts +226 -224
  3. package/lib/cjs/BackendHubAccess.d.ts.map +1 -1
  4. package/lib/cjs/BackendHubAccess.js +41 -41
  5. package/lib/cjs/BackendHubAccess.js.map +1 -1
  6. package/lib/cjs/BackendLoggerCategory.d.ts +90 -91
  7. package/lib/cjs/BackendLoggerCategory.d.ts.map +1 -1
  8. package/lib/cjs/BackendLoggerCategory.js +98 -99
  9. package/lib/cjs/BackendLoggerCategory.js.map +1 -1
  10. package/lib/cjs/BisCoreSchema.d.ts +21 -21
  11. package/lib/cjs/BisCoreSchema.js +60 -60
  12. package/lib/cjs/BlobContainerService.d.ts +120 -0
  13. package/lib/cjs/BlobContainerService.d.ts.map +1 -0
  14. package/lib/cjs/BlobContainerService.js +18 -0
  15. package/lib/cjs/BlobContainerService.js.map +1 -0
  16. package/lib/cjs/BriefcaseManager.d.ts +184 -170
  17. package/lib/cjs/BriefcaseManager.d.ts.map +1 -1
  18. package/lib/cjs/BriefcaseManager.js +421 -414
  19. package/lib/cjs/BriefcaseManager.js.map +1 -1
  20. package/lib/cjs/Category.d.ts +153 -153
  21. package/lib/cjs/Category.js +243 -243
  22. package/lib/cjs/Category.js.map +1 -1
  23. package/lib/cjs/ChangeSummaryManager.d.ts +187 -187
  24. package/lib/cjs/ChangeSummaryManager.js +444 -445
  25. package/lib/cjs/ChangeSummaryManager.js.map +1 -1
  26. package/lib/cjs/ChangedElementsDb.d.ts +99 -99
  27. package/lib/cjs/ChangedElementsDb.js +165 -165
  28. package/lib/cjs/ChangedElementsManager.d.ts +39 -39
  29. package/lib/cjs/ChangedElementsManager.js +88 -88
  30. package/lib/cjs/ChannelControl.d.ts +70 -0
  31. package/lib/cjs/ChannelControl.d.ts.map +1 -0
  32. package/lib/cjs/ChannelControl.js +89 -0
  33. package/lib/cjs/ChannelControl.js.map +1 -0
  34. package/lib/cjs/CheckpointManager.d.ts +121 -121
  35. package/lib/cjs/CheckpointManager.d.ts.map +1 -1
  36. package/lib/cjs/CheckpointManager.js +351 -349
  37. package/lib/cjs/CheckpointManager.js.map +1 -1
  38. package/lib/cjs/ClassRegistry.d.ts +79 -79
  39. package/lib/cjs/ClassRegistry.js +249 -245
  40. package/lib/cjs/ClassRegistry.js.map +1 -1
  41. package/lib/cjs/CloudSqlite.d.ts +572 -350
  42. package/lib/cjs/CloudSqlite.d.ts.map +1 -1
  43. package/lib/cjs/CloudSqlite.js +374 -153
  44. package/lib/cjs/CloudSqlite.js.map +1 -1
  45. package/lib/cjs/CodeService.d.ts +399 -396
  46. package/lib/cjs/CodeService.d.ts.map +1 -1
  47. package/lib/cjs/CodeService.js +63 -63
  48. package/lib/cjs/CodeService.js.map +1 -1
  49. package/lib/cjs/CodeSpecs.d.ts +58 -55
  50. package/lib/cjs/CodeSpecs.d.ts.map +1 -1
  51. package/lib/cjs/CodeSpecs.js +154 -124
  52. package/lib/cjs/CodeSpecs.js.map +1 -1
  53. package/lib/cjs/ConcurrentQuery.d.ts +13 -13
  54. package/lib/cjs/ConcurrentQuery.d.ts.map +1 -1
  55. package/lib/cjs/ConcurrentQuery.js +36 -36
  56. package/lib/cjs/CustomViewState3dCreator.d.ts +21 -21
  57. package/lib/cjs/CustomViewState3dCreator.d.ts.map +1 -1
  58. package/lib/cjs/CustomViewState3dCreator.js +80 -81
  59. package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
  60. package/lib/cjs/DevTools.d.ts +74 -71
  61. package/lib/cjs/DevTools.d.ts.map +1 -1
  62. package/lib/cjs/DevTools.js +156 -154
  63. package/lib/cjs/DevTools.js.map +1 -1
  64. package/lib/cjs/DisplayStyle.d.ts +104 -106
  65. package/lib/cjs/DisplayStyle.d.ts.map +1 -1
  66. package/lib/cjs/DisplayStyle.js +251 -256
  67. package/lib/cjs/DisplayStyle.js.map +1 -1
  68. package/lib/cjs/ECDb.d.ts +194 -191
  69. package/lib/cjs/ECDb.d.ts.map +1 -1
  70. package/lib/cjs/ECDb.js +351 -350
  71. package/lib/cjs/ECDb.js.map +1 -1
  72. package/lib/cjs/ECSchemaXmlContext.d.ts +18 -18
  73. package/lib/cjs/ECSchemaXmlContext.d.ts.map +1 -1
  74. package/lib/cjs/ECSchemaXmlContext.js +41 -41
  75. package/lib/cjs/ECSqlStatement.d.ts +473 -473
  76. package/lib/cjs/ECSqlStatement.js +791 -791
  77. package/lib/cjs/Element.d.ts +1105 -1109
  78. package/lib/cjs/Element.d.ts.map +1 -1
  79. package/lib/cjs/Element.js +1416 -1427
  80. package/lib/cjs/Element.js.map +1 -1
  81. package/lib/cjs/ElementAspect.d.ts +175 -179
  82. package/lib/cjs/ElementAspect.d.ts.map +1 -1
  83. package/lib/cjs/ElementAspect.js +202 -211
  84. package/lib/cjs/ElementAspect.js.map +1 -1
  85. package/lib/cjs/ElementGraphics.d.ts +9 -9
  86. package/lib/cjs/ElementGraphics.js +41 -41
  87. package/lib/cjs/ElementGraphics.js.map +1 -1
  88. package/lib/cjs/ElementTreeWalker.d.ts +162 -162
  89. package/lib/cjs/ElementTreeWalker.d.ts.map +1 -1
  90. package/lib/cjs/ElementTreeWalker.js +409 -409
  91. package/lib/cjs/ElementTreeWalker.js.map +1 -1
  92. package/lib/cjs/Entity.d.ts +102 -106
  93. package/lib/cjs/Entity.d.ts.map +1 -1
  94. package/lib/cjs/Entity.js +118 -134
  95. package/lib/cjs/Entity.js.map +1 -1
  96. package/lib/cjs/EntityReferences.d.ts +49 -49
  97. package/lib/cjs/EntityReferences.d.ts.map +1 -1
  98. package/lib/cjs/EntityReferences.js +95 -95
  99. package/lib/cjs/ExportGraphics.d.ts +317 -317
  100. package/lib/cjs/ExportGraphics.d.ts.map +1 -1
  101. package/lib/cjs/ExportGraphics.js +208 -208
  102. package/lib/cjs/ExternalSource.d.ts +95 -96
  103. package/lib/cjs/ExternalSource.d.ts.map +1 -1
  104. package/lib/cjs/ExternalSource.js +130 -131
  105. package/lib/cjs/ExternalSource.js.map +1 -1
  106. package/lib/cjs/GeoCoordConfig.d.ts +19 -19
  107. package/lib/cjs/GeoCoordConfig.js +85 -85
  108. package/lib/cjs/GeoCoordConfig.js.map +1 -1
  109. package/lib/cjs/GeometrySummary.d.ts +4 -4
  110. package/lib/cjs/GeometrySummary.js +333 -333
  111. package/lib/cjs/GeometrySummary.js.map +1 -1
  112. package/lib/cjs/HubMock.d.ts +94 -94
  113. package/lib/cjs/HubMock.js +220 -222
  114. package/lib/cjs/HubMock.js.map +1 -1
  115. package/lib/cjs/IModelCloneContext.d.ts +8 -8
  116. package/lib/cjs/IModelCloneContext.d.ts.map +1 -1
  117. package/lib/cjs/IModelCloneContext.js +15 -15
  118. package/lib/cjs/IModelDb.d.ts +1222 -1196
  119. package/lib/cjs/IModelDb.d.ts.map +1 -1
  120. package/lib/cjs/IModelDb.js +2389 -2392
  121. package/lib/cjs/IModelDb.js.map +1 -1
  122. package/lib/cjs/IModelElementCloneContext.d.ts +89 -89
  123. package/lib/cjs/IModelElementCloneContext.js +159 -159
  124. package/lib/cjs/IModelHost.d.ts +370 -369
  125. package/lib/cjs/IModelHost.d.ts.map +1 -1
  126. package/lib/cjs/IModelHost.js +476 -496
  127. package/lib/cjs/IModelHost.js.map +1 -1
  128. package/lib/cjs/IModelJsFs.d.ts +62 -62
  129. package/lib/cjs/IModelJsFs.js +139 -140
  130. package/lib/cjs/IModelJsFs.js.map +1 -1
  131. package/lib/cjs/IpcHost.d.ts +104 -104
  132. package/lib/cjs/IpcHost.js +276 -278
  133. package/lib/cjs/IpcHost.js.map +1 -1
  134. package/lib/cjs/LineStyle.d.ts +311 -311
  135. package/lib/cjs/LineStyle.js +295 -295
  136. package/lib/cjs/LocalHub.d.ts +162 -162
  137. package/lib/cjs/LocalHub.d.ts.map +1 -1
  138. package/lib/cjs/LocalHub.js +579 -584
  139. package/lib/cjs/LocalHub.js.map +1 -1
  140. package/lib/cjs/LocalhostIpcHost.d.ts +21 -20
  141. package/lib/cjs/LocalhostIpcHost.d.ts.map +1 -1
  142. package/lib/cjs/LocalhostIpcHost.js +79 -81
  143. package/lib/cjs/LocalhostIpcHost.js.map +1 -1
  144. package/lib/cjs/Material.d.ts +131 -131
  145. package/lib/cjs/Material.d.ts.map +1 -1
  146. package/lib/cjs/Material.js +185 -181
  147. package/lib/cjs/Material.js.map +1 -1
  148. package/lib/cjs/Model.d.ts +391 -392
  149. package/lib/cjs/Model.d.ts.map +1 -1
  150. package/lib/cjs/Model.js +487 -485
  151. package/lib/cjs/Model.js.map +1 -1
  152. package/lib/cjs/NativeAppStorage.d.ts +51 -51
  153. package/lib/cjs/NativeAppStorage.js +202 -202
  154. package/lib/cjs/NativeAppStorage.js.map +1 -1
  155. package/lib/cjs/NativeHost.d.ts +52 -52
  156. package/lib/cjs/NativeHost.d.ts.map +1 -1
  157. package/lib/cjs/NativeHost.js +158 -163
  158. package/lib/cjs/NativeHost.js.map +1 -1
  159. package/lib/cjs/NavigationRelationship.d.ts +156 -156
  160. package/lib/cjs/NavigationRelationship.js +225 -225
  161. package/lib/cjs/NavigationRelationship.js.map +1 -1
  162. package/lib/cjs/PromiseMemoizer.d.ts +51 -51
  163. package/lib/cjs/PromiseMemoizer.d.ts.map +1 -1
  164. package/lib/cjs/PromiseMemoizer.js +101 -101
  165. package/lib/cjs/PromiseMemoizer.js.map +1 -1
  166. package/lib/cjs/PropertyStore.d.ts +123 -132
  167. package/lib/cjs/PropertyStore.d.ts.map +1 -1
  168. package/lib/cjs/PropertyStore.js +179 -11
  169. package/lib/cjs/PropertyStore.js.map +1 -1
  170. package/lib/cjs/Relationship.d.ts +413 -416
  171. package/lib/cjs/Relationship.d.ts.map +1 -1
  172. package/lib/cjs/Relationship.js +491 -494
  173. package/lib/cjs/Relationship.js.map +1 -1
  174. package/lib/cjs/RpcBackend.d.ts +5 -5
  175. package/lib/cjs/RpcBackend.js +32 -32
  176. package/lib/cjs/SQLiteDb.d.ts +317 -219
  177. package/lib/cjs/SQLiteDb.d.ts.map +1 -1
  178. package/lib/cjs/SQLiteDb.js +318 -214
  179. package/lib/cjs/SQLiteDb.js.map +1 -1
  180. package/lib/cjs/Schema.d.ts +55 -55
  181. package/lib/cjs/Schema.js +83 -83
  182. package/lib/cjs/Schema.js.map +1 -1
  183. package/lib/cjs/ServerBasedLocks.d.ts +57 -57
  184. package/lib/cjs/ServerBasedLocks.js +168 -168
  185. package/lib/cjs/ServerBasedLocks.js.map +1 -1
  186. package/lib/cjs/SqliteStatement.d.ts +360 -360
  187. package/lib/cjs/SqliteStatement.d.ts.map +1 -1
  188. package/lib/cjs/SqliteStatement.js +586 -586
  189. package/lib/cjs/Texture.d.ts +58 -58
  190. package/lib/cjs/Texture.js +82 -82
  191. package/lib/cjs/Texture.js.map +1 -1
  192. package/lib/cjs/TileStorage.d.ts +44 -18
  193. package/lib/cjs/TileStorage.d.ts.map +1 -1
  194. package/lib/cjs/TileStorage.js +109 -90
  195. package/lib/cjs/TileStorage.js.map +1 -1
  196. package/lib/cjs/TxnManager.d.ts +202 -202
  197. package/lib/cjs/TxnManager.d.ts.map +1 -1
  198. package/lib/cjs/TxnManager.js +356 -356
  199. package/lib/cjs/TxnManager.js.map +1 -1
  200. package/lib/cjs/ViewDefinition.d.ts +429 -439
  201. package/lib/cjs/ViewDefinition.d.ts.map +1 -1
  202. package/lib/cjs/ViewDefinition.js +640 -646
  203. package/lib/cjs/ViewDefinition.js.map +1 -1
  204. package/lib/cjs/ViewStateHydrator.d.ts +13 -13
  205. package/lib/cjs/ViewStateHydrator.js +103 -103
  206. package/lib/cjs/core-backend.d.ts +181 -184
  207. package/lib/cjs/core-backend.d.ts.map +1 -1
  208. package/lib/cjs/core-backend.js +205 -204
  209. package/lib/cjs/core-backend.js.map +1 -1
  210. package/lib/cjs/domains/FunctionalElements.d.ts +101 -101
  211. package/lib/cjs/domains/FunctionalElements.js +145 -145
  212. package/lib/cjs/domains/FunctionalElements.js.map +1 -1
  213. package/lib/cjs/domains/FunctionalSchema.d.ts +13 -13
  214. package/lib/cjs/domains/FunctionalSchema.d.ts.map +1 -1
  215. package/lib/cjs/domains/FunctionalSchema.js +39 -40
  216. package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
  217. package/lib/cjs/domains/GenericElements.d.ts +177 -177
  218. package/lib/cjs/domains/GenericElements.js +263 -263
  219. package/lib/cjs/domains/GenericSchema.d.ts +10 -10
  220. package/lib/cjs/domains/GenericSchema.js +28 -28
  221. package/lib/cjs/rpc/multipart.d.ts +11 -11
  222. package/lib/cjs/rpc/multipart.js +71 -71
  223. package/lib/cjs/rpc/tracing.d.ts +28 -28
  224. package/lib/cjs/rpc/tracing.js +73 -74
  225. package/lib/cjs/rpc/tracing.js.map +1 -1
  226. package/lib/cjs/rpc/web/logging.d.ts +9 -9
  227. package/lib/cjs/rpc/web/logging.js +43 -43
  228. package/lib/cjs/rpc/web/request.d.ts +6 -6
  229. package/lib/cjs/rpc/web/request.js +73 -74
  230. package/lib/cjs/rpc/web/request.js.map +1 -1
  231. package/lib/cjs/rpc/web/response.d.ts +6 -6
  232. package/lib/cjs/rpc/web/response.js +105 -106
  233. package/lib/cjs/rpc/web/response.js.map +1 -1
  234. package/lib/cjs/rpc-impl/DevToolsRpcImpl.d.ts +15 -15
  235. package/lib/cjs/rpc-impl/DevToolsRpcImpl.js +32 -32
  236. package/lib/cjs/rpc-impl/IModelReadRpcImpl.d.ts +47 -47
  237. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js +293 -294
  238. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  239. package/lib/cjs/rpc-impl/IModelTileRpcImpl.d.ts +20 -22
  240. package/lib/cjs/rpc-impl/IModelTileRpcImpl.d.ts.map +1 -1
  241. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js +193 -205
  242. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  243. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.d.ts +36 -36
  244. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js +166 -168
  245. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  246. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.d.ts +16 -16
  247. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js +42 -43
  248. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  249. package/lib/cjs/rpc-impl/WipRpcImpl.d.ts +15 -15
  250. package/lib/cjs/rpc-impl/WipRpcImpl.js +37 -37
  251. package/lib/cjs/workspace/Settings.d.ts +186 -186
  252. package/lib/cjs/workspace/Settings.d.ts.map +1 -1
  253. package/lib/cjs/workspace/Settings.js +155 -155
  254. package/lib/cjs/workspace/Settings.js.map +1 -1
  255. package/lib/cjs/workspace/SettingsSchemas.d.ts +75 -75
  256. package/lib/cjs/workspace/SettingsSchemas.js +190 -191
  257. package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
  258. package/lib/cjs/workspace/Workspace.d.ts +411 -414
  259. package/lib/cjs/workspace/Workspace.d.ts.map +1 -1
  260. package/lib/cjs/workspace/Workspace.js +521 -543
  261. package/lib/cjs/workspace/Workspace.js.map +1 -1
  262. package/package.json +25 -28
  263. package/lib/cjs/AliCloudStorageService.d.ts +0 -24
  264. package/lib/cjs/AliCloudStorageService.d.ts.map +0 -1
  265. package/lib/cjs/AliCloudStorageService.js +0 -72
  266. package/lib/cjs/AliCloudStorageService.js.map +0 -1
  267. package/lib/cjs/CloudStorageBackend.d.ts +0 -59
  268. package/lib/cjs/CloudStorageBackend.d.ts.map +0 -1
  269. package/lib/cjs/CloudStorageBackend.js +0 -174
  270. package/lib/cjs/CloudStorageBackend.js.map +0 -1
@@ -1,1110 +1,1106 @@
1
- /** @packageDocumentation
2
- * @module Elements
3
- */
4
- import { GuidString, Id64Set, Id64String } from "@itwin/core-bentley";
5
- import { AxisAlignedBox3d, Code, CodeScopeProps, ConcreteEntityTypes, DefinitionElementProps, ElementAlignedBox3d, ElementGeometryBuilderParams, ElementGeometryBuilderParamsForPart, ElementProps, EntityMetaData, EntityReferenceSet, GeometricElement2dProps, GeometricElement3dProps, GeometricElementProps, GeometryPartProps, GeometryStreamProps, InformationPartitionElementProps, LineStyleProps, ModelProps, PhysicalElementProps, PhysicalTypeProps, Placement2d, Placement3d, RelatedElement, RenderSchedule, RenderTimelineProps, RepositoryLinkProps, SectionDrawingLocationProps, SectionDrawingProps, SectionType, SheetBorderTemplateProps, SheetProps, SheetTemplateProps, SubjectProps, TypeDefinition, TypeDefinitionElementProps, UrlLinkProps } from "@itwin/core-common";
6
- import { ClipVector, Transform } from "@itwin/core-geometry";
7
- import { Entity } from "./Entity";
8
- import { IModelDb } from "./IModelDb";
9
- import { IModelElementCloneContext } from "./IModelElementCloneContext";
10
- /** Argument for the `Element.onXxx` static methods
11
- * @beta
12
- */
13
- export interface OnElementArg {
14
- /** The iModel for the Element affected by this method. */
15
- iModel: IModelDb;
16
- }
17
- /** Argument for `Element.onInsert` and `Element.onUpdate` static methods.
18
- * @beta
19
- */
20
- export interface OnElementPropsArg extends OnElementArg {
21
- /** The properties of the Element affected by this method.
22
- * @note the properties may be modified. If so the modified values will be inserted/updated.
23
- */
24
- props: ElementProps;
25
- }
26
- /** Argument for the `Element.onXxx` static methods that only supply the Id of the affected Element.
27
- * @beta
28
- */
29
- export interface OnElementIdArg extends OnElementArg {
30
- /** The Id of the Element affected by this method */
31
- id: Id64String;
32
- }
33
- /** Argument for the `Element.onChildXxx` static methods
34
- * @beta
35
- */
36
- export interface OnChildElementArg extends OnElementArg {
37
- parentId: Id64String;
38
- }
39
- /** Argument for the `Element.onChildXxx` static methods that supply the properties of the child Element to be inserted or updated.
40
- * @beta
41
- */
42
- export interface OnChildElementPropsArg extends OnChildElementArg {
43
- /** The new properties of the child Element for this method. */
44
- childProps: Readonly<ElementProps>;
45
- }
46
- /** Argument for the `Element.onChildXxx` static methods that only supply the Id of the child Element.
47
- * @beta
48
- */
49
- export interface OnChildElementIdArg extends OnChildElementArg {
50
- /** The Id of the child element for this method */
51
- childId: Id64String;
52
- }
53
- /** Argument for the `Element.onSubModelInsert` static method
54
- * @beta
55
- */
56
- export interface OnSubModelPropsArg extends OnElementArg {
57
- /** The properties of the prospective sub-model */
58
- subModelProps: ModelProps;
59
- }
60
- /** Argument for several `Element.onSubModelXxx` static methods
61
- * @beta
62
- */
63
- export interface OnSubModelIdArg extends OnElementArg {
64
- /** The modelId of the sub Model */
65
- subModelId: Id64String;
66
- }
67
- /** Elements are the smallest individually identifiable building blocks for modeling the real world in an iModel.
68
- * Each element represents an entity in the real world. Sets of Elements (contained in [[Model]]s) are used to model
69
- * other Elements that represent larger scale real world entities. Using this recursive modeling strategy,
70
- * Elements can represent entities at any scale. Elements can represent physical things or abstract concepts
71
- * or simply be information records.
72
- *
73
- * Every Element has a 64-bit id (inherited from Entity) that uniquely identifies it within an iModel. Every Element also
74
- * has a "code" that identifies its meaning in the real world. Additionally, Elements may have a "federationGuid"
75
- * to hold a GUID, if the element was assigned that GUID by some other federated database. The iModel database enforces
76
- * uniqueness of id, code, and federationGuid.
77
- *
78
- * See:
79
- * * [Element Fundamentals]($docs/bis/guide/fundamentals/element-fundamentals.md)
80
- * * [Working with schemas and elements in TypeScript]($docs/learning/backend/SchemasAndElementsInTypeScript.md)
81
- * * [Creating elements]($docs/learning/backend/CreateElements.md)
82
- * @public
83
- */
84
- export declare class Element extends Entity {
85
- /** @internal */
86
- static get className(): string;
87
- /** @internal */
88
- static get protectedOperations(): string[];
89
- /** The ModelId of the [Model]($docs/bis/guide/fundamentals/model-fundamentals.md) containing this element */
90
- readonly model: Id64String;
91
- /** The [Code]($docs/bis/guide/fundamentals/codes.md) for this element */
92
- code: Code;
93
- /** The parent element, if present, of this element. */
94
- parent?: RelatedElement;
95
- /** A [FederationGuid]($docs/bis/guide/fundamentals/element-fundamentals.md#federationguid) assigned to this element by some other federated database */
96
- federationGuid?: GuidString;
97
- /** A [user-assigned label]($docs/bis/guide/fundamentals/element-fundamentals.md#userlabel) for this element. */
98
- userLabel?: string;
99
- /** Optional [json properties]($docs/bis/guide/fundamentals/element-fundamentals.md#jsonproperties) of this element. */
100
- readonly jsonProperties: {
101
- [key: string]: any;
102
- };
103
- /** constructor for Element.
104
- * @internal
105
- */
106
- constructor(props: ElementProps, iModel: IModelDb);
107
- /** Called before a new Element is inserted.
108
- * @note throw an exception to disallow the insert
109
- * @note If you override this method, you must call super.
110
- * @note `this` is the class of the Element to be inserted
111
- * @beta
112
- */
113
- protected static onInsert(arg: OnElementPropsArg): void;
114
- /** Called after a new Element was inserted.
115
- * @note If you override this method, you must call super.
116
- * @note `this` is the class of the Element that was inserted
117
- * @beta
118
- */
119
- protected static onInserted(arg: OnElementIdArg): void;
120
- /** Called before an Element is updated.
121
- * @note throw an exception to disallow the update
122
- * @note If you override this method, you must call super.
123
- * @note `this` is the class of the Element to be updated
124
- * @beta
125
- */
126
- protected static onUpdate(arg: OnElementPropsArg): void;
127
- /** Called after an Element was updated.
128
- * @note If you override this method, you must call super.
129
- * @note `this` is the class of the Element that was updated
130
- * @beta
131
- */
132
- protected static onUpdated(_arg: OnElementIdArg): void;
133
- /** Called before an Element is deleted.
134
- * @note throw an exception to disallow the delete
135
- * @note If you override this method, you must call super.
136
- * @note `this` is the class of the Element to be deleted
137
- * @beta
138
- */
139
- protected static onDelete(arg: OnElementIdArg): void;
140
- /** Called after an Element was deleted.
141
- * @note If you override this method, you must call super.
142
- * @note `this` is the class of the Element that was deleted
143
- * @beta
144
- */
145
- protected static onDeleted(_arg: OnElementIdArg): void;
146
- /** Called when an element with an instance of this class as its parent is about to be deleted.
147
- * @note throw an exception if the element should not be deleted
148
- * @note implementers should not presume that the element was deleted if this method does not throw,
149
- * since the delete may fail for other reasons. Instead, rely on [[onChildDeleted]] for that purpose.
150
- * @note `this` is the class of the parent Element whose child will be deleted
151
- * @beta
152
- */
153
- protected static onChildDelete(_arg: OnChildElementIdArg): void;
154
- /** Called after an element with an instance of this class as its parent was successfully deleted.
155
- * @note `this` is the class of the parent Element whose child was deleted
156
- * @beta
157
- */
158
- protected static onChildDeleted(_arg: OnChildElementIdArg): void;
159
- /** Called when a *new element* with an instance of this class as its parent is about to be inserted.
160
- * @note throw an exception if the element should not be inserted
161
- * @note `this` is the class of the prospective parent Element.
162
- * @beta
163
- */
164
- protected static onChildInsert(_arg: OnChildElementPropsArg): void;
165
- /** Called after a *new element* with an instance of this class as its parent was inserted.
166
- * @note `this` is the class of the parent Element.
167
- * @beta
168
- */
169
- protected static onChildInserted(_arg: OnChildElementIdArg): void;
170
- /** Called when an element with an instance of this class as its parent is about to be updated.
171
- * @note throw an exception if the element should not be updated
172
- * @note `this` is the class of the parent Element.
173
- * @beta
174
- */
175
- protected static onChildUpdate(_arg: OnChildElementPropsArg): void;
176
- /** Called after an element with an instance of this the class as its parent was updated.
177
- * @note `this` is the class of the parent Element.
178
- * @beta
179
- */
180
- protected static onChildUpdated(_arg: OnChildElementIdArg): void;
181
- /** Called when an *existing element* is about to be updated so that an instance of this class will become its new parent.
182
- * @note throw an exception if the element should not be added
183
- * @note `this` is the class of the prospective parent Element.
184
- * @beta
185
- */
186
- protected static onChildAdd(_arg: OnChildElementPropsArg): void;
187
- /** Called after an *existing element* has been updated so that an instance of this class is its new parent.
188
- * @note `this` is the class of the new parent Element.
189
- * @beta
190
- */
191
- protected static onChildAdded(_arg: OnChildElementIdArg): void;
192
- /** Called when an element with an instance of this class as its parent is about to be updated change to a different parent.
193
- * @note throw an exception if the element should not be dropped
194
- * @note `this` is the class of the parent Element.
195
- * @beta
196
- */
197
- protected static onChildDrop(_arg: OnChildElementIdArg): void;
198
- /** Called after an element with an instance of this class as its previous parent was updated to have a new parent.
199
- * @note `this` is the class of the previous parent Element.
200
- * @beta
201
- */
202
- protected static onChildDropped(_arg: OnChildElementIdArg): void;
203
- /** Called when an instance of this class is being *sub-modeled* by a new Model.
204
- * @note throw an exception if model should not be inserted
205
- * @note `this` is the class of Element to be sub-modeled.
206
- * @beta
207
- */
208
- protected static onSubModelInsert(_arg: OnSubModelPropsArg): void;
209
- /** Called after an instance of this class was *sub-modeled* by a new Model.
210
- * @note `this` is the class of Element that is now sub-modeled.
211
- * @beta
212
- */
213
- protected static onSubModelInserted(_arg: OnSubModelIdArg): void;
214
- /** Called when a sub-model of an instance of this class is being deleted.
215
- * @note throw an exception if model should not be deleted
216
- * @note `this` is the class of Element that is sub-modeled.
217
- * @beta
218
- */
219
- protected static onSubModelDelete(_arg: OnSubModelIdArg): void;
220
- /** Called after a sub-model of an instance of this class was deleted.
221
- * @note `this` is the class of Element that was sub-modeled.
222
- * @beta
223
- */
224
- protected static onSubModelDeleted(_arg: OnSubModelIdArg): void;
225
- /** Called during the iModel transformation process after an Element from the source iModel was *cloned* for the target iModel.
226
- * The transformation process automatically handles remapping BisCore properties and those that are properly described in ECSchema.
227
- * 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.
228
- * @param _context The context that persists any remapping between the source iModel and target iModel.
229
- * @param _sourceProps The ElementProps for the source Element that was cloned.
230
- * @param _targetProps The ElementProps that are a result of the clone. These can be further modified.
231
- * @note If you override this method, you must call super.
232
- * @beta
233
- */
234
- protected static onCloned(_context: IModelElementCloneContext, _sourceProps: ElementProps, _targetProps: ElementProps): void;
235
- /** Called when a *root* element in a subgraph is changed and before its outputs are processed.
236
- * This special callback is made when:
237
- * * the element is part of an [[ElementDrivesElement]] graph, and
238
- * * the element has no inputs, and
239
- * * none of the element's outputs have been processed.
240
- * @see [[ElementDrivesElement]] for more on element dependency graphs.
241
- * @beta
242
- */
243
- protected static onBeforeOutputsHandled(_id: Id64String, _iModel: IModelDb): void;
244
- /** Called on an element in a graph after all of its inputs have been processed and before its outputs are processed.
245
- * This callback is made when:
246
- * * the specified element is part of an [[ElementDrivesElement]] graph, and
247
- * * there was a direct change to some element upstream in the dependency graph.
248
- * * all upstream elements in the graph have been processed.
249
- * * none of the downstream elements have been processed.
250
- * This method is not called if none of the element's inputs were changed.
251
- * @see [[ElementDrivesElement]] for more on element dependency graphs.
252
- * @beta
253
- */
254
- protected static onAllInputsHandled(_id: Id64String, _iModel: IModelDb): void;
255
- /** Save this Element's properties to an object for serializing to JSON.
256
- * @internal
257
- */
258
- toJSON(): ElementProps;
259
- /** Collect the Ids of this element's *references* at this level of the class hierarchy.
260
- * @deprecated in 3.x. use [[collectReferenceIds]] instead, the use of the term *predecessors* was confusing and became inaccurate when the transformer could handle cycles
261
- * @beta
262
- */
263
- protected collectPredecessorIds(predecessorIds: Id64Set): void;
264
- /** @internal */
265
- protected collectReferenceConcreteIds(referenceIds: EntityReferenceSet): void;
266
- /** Get the Ids of this element's *references*. A *reference* is any element whose id is stored in the EC data of this element
267
- * This is important for cloning operations but can be useful in other situations as well.
268
- * @beta
269
- * @deprecated in 3.x. use [[getReferenceIds]] instead, the use of the term *predecessors* was confusing and became inaccurate when the transformer could handle cycles
270
- */
271
- getPredecessorIds(): Id64Set;
272
- /** A *required reference* is an element that had to be inserted before this element could have been inserted.
273
- * This is the list of property keys on this element that store references to those elements
274
- * @note This should be overridden (with `super` called) at each level of the class hierarchy that introduces required references.
275
- * @note any property listed here must be added to the reference ids in [[collectReferenceIds]]
276
- * @beta
277
- */
278
- static readonly requiredReferenceKeys: ReadonlyArray<string>;
279
- /** A map of every [[requiredReferenceKeys]] on this class to their entity type.
280
- * @note This should be overridden (with `super` called) at each level of the class hierarchy that introduces required references.
281
- * @alpha
282
- */
283
- static readonly requiredReferenceKeyTypeMap: Record<string, ConcreteEntityTypes>;
284
- /** Get the class metadata for this element. */
285
- getClassMetaData(): EntityMetaData | undefined;
286
- private getAllUserProperties;
287
- /** Get a set of JSON user properties by namespace */
288
- getUserProperties(namespace: string): any;
289
- /** Change a set of user JSON properties of this Element by namespace. */
290
- setUserProperties(nameSpace: string, value: any): void;
291
- /** Remove a set of JSON user properties, specified by namespace, from this Element */
292
- removeUserProperties(nameSpace: string): void;
293
- /** Get a JSON property of this element, by namespace */
294
- getJsonProperty(nameSpace: string): any;
295
- setJsonProperty(nameSpace: string, value: any): void;
296
- /** Get a display label for this Element. By default returns userLabel if present, otherwise code value. */
297
- getDisplayLabel(): string;
298
- /** Get a list of HTML strings that describe this Element for the tooltip. Strings will be listed on separate lines in the tooltip.
299
- * Any instances of the pattern `%{tag}` will be replaced by the localized value of tag.
300
- */
301
- getToolTipMessage(): string[];
302
- /**
303
- * Insert this Element into the iModel.
304
- * @see [[IModelDb.Elements.insertElement]]
305
- * @note For convenience, the value of `this.id` is updated to reflect the resultant element's id.
306
- * However when `this.federationGuid` is not present or undefined, a new Guid will be generated and stored on the resultant element. But
307
- * the value of `this.federationGuid` is *not* updated. Generally, it is best to re-read the element after inserting (e.g. via [[IModelDb.Elements.getElement]])
308
- * if you intend to continue working with it. That will ensure its values reflect the persistent state.
309
- */
310
- insert(): string;
311
- /** Update this Element in the iModel. */
312
- update(): void;
313
- /** Delete this Element from the iModel. */
314
- delete(): void;
315
- }
316
- /** An abstract base class to model real world entities that intrinsically have geometry.
317
- * @public
318
- */
319
- export declare abstract class GeometricElement extends Element {
320
- /** @internal */
321
- static get className(): string;
322
- /** The Id of the [[Category]] for this GeometricElement. */
323
- category: Id64String;
324
- /** The GeometryStream for this GeometricElement. */
325
- geom?: GeometryStreamProps;
326
- /** How to build the element's GeometryStream. This is used for insert and update only. It is not a persistent property. It will be undefined in the properties returned by functions that read a persistent element. It may be specified as an alternative to `geom` when inserting or updating an element.
327
- * @alpha
328
- */
329
- elementGeometryBuilderParams?: ElementGeometryBuilderParams;
330
- /** The origin, orientation, and bounding box of this GeometricElement. */
331
- abstract get placement(): Placement2d | Placement3d;
332
- /** @internal */
333
- constructor(props: GeometricElementProps, iModel: IModelDb);
334
- /** Type guard for instanceof [[GeometricElement3d]] */
335
- is3d(): this is GeometricElement3d;
336
- /** Type guard for instanceof [[GeometricElement2d]] */
337
- is2d(): this is GeometricElement2d;
338
- /** Get the [Transform]($geometry) from the Placement of this GeometricElement */
339
- getPlacementTransform(): Transform;
340
- calculateRange3d(): AxisAlignedBox3d;
341
- /** Obtain the JSON representation of this element. */
342
- toJSON(): GeometricElementProps;
343
- /** @internal */
344
- protected collectReferenceConcreteIds(referenceIds: EntityReferenceSet): void;
345
- /** @beta */
346
- static readonly requiredReferenceKeys: ReadonlyArray<string>;
347
- /** @alpha */
348
- static readonly requiredReferenceKeyTypeMap: Record<string, ConcreteEntityTypes>;
349
- }
350
- /** An abstract base class to model real world entities that intrinsically have 3d geometry.
351
- * See [how to create a GeometricElement3d]($docs/learning/backend/CreateElements.md#GeometricElement3d).
352
- * @public
353
- */
354
- export declare abstract class GeometricElement3d extends GeometricElement {
355
- /** @internal */
356
- static get className(): string;
357
- placement: Placement3d;
358
- typeDefinition?: TypeDefinition;
359
- /** @internal */
360
- constructor(props: GeometricElement3dProps, iModel: IModelDb);
361
- /** @internal */
362
- toJSON(): GeometricElement3dProps;
363
- /** @internal */
364
- protected collectReferenceConcreteIds(referenceIds: EntityReferenceSet): void;
365
- }
366
- /** A 3d Graphical Element
367
- * @public
368
- */
369
- export declare abstract class GraphicalElement3d extends GeometricElement3d {
370
- /** @internal */
371
- static get className(): string;
372
- /** @internal */
373
- constructor(props: GeometricElement3dProps, iModel: IModelDb);
374
- }
375
- /** An abstract base class to model information entities that intrinsically have 2d geometry.
376
- * @public
377
- */
378
- export declare abstract class GeometricElement2d extends GeometricElement {
379
- /** @internal */
380
- static get className(): string;
381
- placement: Placement2d;
382
- typeDefinition?: TypeDefinition;
383
- /** @internal */
384
- constructor(props: GeometricElement2dProps, iModel: IModelDb);
385
- /** @internal */
386
- toJSON(): GeometricElement2dProps;
387
- /** @internal */
388
- protected collectReferenceConcreteIds(referenceIds: EntityReferenceSet): void;
389
- }
390
- /** An abstract base class for 2d Geometric Elements that are used to convey information within graphical presentations (like drawings).
391
- * @public
392
- */
393
- export declare abstract class GraphicalElement2d extends GeometricElement2d {
394
- /** @internal */
395
- static get className(): string;
396
- /** @internal */
397
- constructor(props: GeometricElement2dProps, iModel: IModelDb);
398
- }
399
- /** 2d element used to annotate drawings and sheets.
400
- * @public
401
- */
402
- export declare class AnnotationElement2d extends GraphicalElement2d {
403
- /** @internal */
404
- static get className(): string;
405
- /** @internal */
406
- constructor(props: GeometricElement2dProps, iModel: IModelDb);
407
- }
408
- /** 2d element used to persist graphics for use in drawings.
409
- * @public
410
- */
411
- export declare class DrawingGraphic extends GraphicalElement2d {
412
- /** @internal */
413
- static get className(): string;
414
- /** @internal */
415
- constructor(props: GeometricElement2dProps, iModel: IModelDb);
416
- }
417
- /** 2D Text Annotation
418
- * @public
419
- */
420
- export declare class TextAnnotation2d extends AnnotationElement2d {
421
- /** @internal */
422
- static get className(): string;
423
- /** @internal */
424
- constructor(props: GeometricElement2dProps, iModel: IModelDb);
425
- }
426
- /** 3D Text Annotation
427
- * @public
428
- */
429
- export declare class TextAnnotation3d extends GraphicalElement3d {
430
- /** @internal */
431
- static get className(): string;
432
- /** @internal */
433
- constructor(props: GeometricElement3dProps, iModel: IModelDb);
434
- }
435
- /** An Element that occupies real world space. Its coordinates are in the project space of its iModel.
436
- * @public
437
- */
438
- export declare abstract class SpatialElement extends GeometricElement3d {
439
- /** @internal */
440
- static get className(): string;
441
- /** @internal */
442
- constructor(props: GeometricElement3dProps, iModel: IModelDb);
443
- }
444
- /** An Element that is spatially located, has mass, and can be *touched*.
445
- * @public
446
- */
447
- export declare abstract class PhysicalElement extends SpatialElement {
448
- /** @internal */
449
- static get className(): string;
450
- /** If defined, the [[PhysicalMaterial]] that makes up this PhysicalElement. */
451
- physicalMaterial?: RelatedElement;
452
- /** @internal */
453
- constructor(props: PhysicalElementProps, iModel: IModelDb);
454
- /** @internal */
455
- toJSON(): PhysicalElementProps;
456
- }
457
- /** Identifies a *tracked* real world location but has no mass and cannot be *touched*.
458
- * @public
459
- */
460
- export declare abstract class SpatialLocationElement extends SpatialElement {
461
- /** @internal */
462
- static get className(): string;
463
- /** @internal */
464
- constructor(props: GeometricElement3dProps, iModel: IModelDb);
465
- }
466
- /** A Volume Element is a Spatial Location Element that is restricted to defining a volume.
467
- * @public
468
- */
469
- export declare class VolumeElement extends SpatialLocationElement {
470
- /** @internal */
471
- static get className(): string;
472
- /** @internal */
473
- constructor(props: GeometricElement3dProps, iModel: IModelDb);
474
- }
475
- /** A SectionDrawingLocation element identifies the location of a [[SectionDrawing]] in the context of a [[SpatialModel]],
476
- * enabling [HyperModeling]($hypermodeling).
477
- * @note The associated ECClass was added to the BisCore schema in version 1.0.11.
478
- * @public
479
- */
480
- export declare class SectionDrawingLocation extends SpatialLocationElement {
481
- /** The Id of the [[ViewDefinition]] to which this location refers. */
482
- sectionView: RelatedElement;
483
- /** @internal */
484
- static get className(): string;
485
- constructor(props: SectionDrawingLocationProps, iModel: IModelDb);
486
- /** @internal */
487
- toJSON(): SectionDrawingLocationProps;
488
- }
489
- /** Information Content Element is an abstract base class for modeling pure information entities. Only the
490
- * core framework should directly subclass from Information Content Element. Domain and application developers
491
- * should start with the most appropriate subclass of Information Content Element.
492
- * @public
493
- */
494
- export declare abstract class InformationContentElement extends Element {
495
- /** @internal */
496
- static get className(): string;
497
- /** @internal */
498
- constructor(props: ElementProps, iModel: IModelDb);
499
- }
500
- /** Element used in conjunction with bis:ElementDrivesElement relationships to bundle multiple inputs before
501
- * driving the output element.
502
- * @beta
503
- */
504
- export declare abstract class DriverBundleElement extends InformationContentElement {
505
- /** @internal */
506
- static get className(): string;
507
- /** @internal */
508
- constructor(props: ElementProps, iModel: IModelDb);
509
- }
510
- /** Information Reference is an abstract base class for modeling entities whose main purpose is to reference something else.
511
- * @public
512
- */
513
- export declare abstract class InformationReferenceElement extends InformationContentElement {
514
- /** @internal */
515
- static get className(): string;
516
- /** @internal */
517
- constructor(props: ElementProps, iModel: IModelDb);
518
- }
519
- /** A Subject is an information element that describes what this repository (or part thereof) is about.
520
- * See [how to create a Subject element]$(docs/learning/backend/CreateElements.md#Subject).
521
- * @public
522
- */
523
- export declare class Subject extends InformationReferenceElement {
524
- /** @internal */
525
- static get className(): string;
526
- description?: string;
527
- /** @internal */
528
- constructor(props: SubjectProps, iModel: IModelDb);
529
- /** @internal */
530
- toJSON(): SubjectProps;
531
- /** Create a Code for a Subject given a name that is meant to be unique within the scope of its parent Subject.
532
- * @param iModelDb The IModelDb
533
- * @param parentSubjectId The Id of the parent Subject that provides the scope for names of its child Subjects.
534
- * @param codeValue The child Subject name
535
- */
536
- static createCode(iModelDb: IModelDb, parentSubjectId: CodeScopeProps, codeValue: string): Code;
537
- /** Create a Subject
538
- * @param iModelDb The IModelDb
539
- * @param parentSubjectId The new Subject will be a child of this Subject
540
- * @param name The name (codeValue) of the Subject
541
- * @param description The optional description of the Subject
542
- * @returns The newly constructed Subject
543
- * @throws [[IModelError]] if there is a problem creating the Subject
544
- */
545
- static create(iModelDb: IModelDb, parentSubjectId: Id64String, name: string, description?: string): Subject;
546
- /** Insert a Subject
547
- * @param iModelDb Insert into this IModelDb
548
- * @param parentSubjectId The new Subject will be inserted as a child of this Subject
549
- * @param name The name (codeValue) of the Subject
550
- * @param description The optional description of the Subject
551
- * @returns The Id of the newly inserted Subject
552
- * @throws [[IModelError]] if there is a problem inserting the Subject
553
- */
554
- static insert(iModelDb: IModelDb, parentSubjectId: Id64String, name: string, description?: string): Id64String;
555
- }
556
- /** An InformationContentElement that identifies the content of a document.
557
- * The realized form of a document is called a DocumentCarrier (different class than Document).
558
- * For example, a will is a legal document. The will published into a PDF file is an ElectronicDocumentCopy.
559
- * The will printed onto paper is a PrintedDocumentCopy.
560
- * In this example, the Document only identifies, names, and tracks the content of the will.
561
- * @public
562
- */
563
- export declare abstract class Document extends InformationContentElement {
564
- /** @internal */
565
- static get className(): string;
566
- /** @internal */
567
- constructor(props: ElementProps, iModel: IModelDb);
568
- }
569
- /** 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]].
570
- * @public
571
- */
572
- export declare class Drawing extends Document {
573
- /** @internal */
574
- static get className(): string;
575
- /** @internal */
576
- constructor(props: ElementProps, iModel: IModelDb);
577
- /** Create a Code for a Drawing given a name that is meant to be unique within the scope of the specified DocumentListModel.
578
- * @param iModel The IModelDb
579
- * @param scopeModelId The Id of the DocumentListModel that contains the Drawing and provides the scope for its name.
580
- * @param codeValue The Drawing name
581
- */
582
- static createCode(iModel: IModelDb, scopeModelId: CodeScopeProps, codeValue: string): Code;
583
- /** Insert a Drawing element and a DrawingModel that breaks it down.
584
- * @param iModelDb Insert into this iModel
585
- * @param documentListModelId Insert the new Drawing into this DocumentListModel
586
- * @param name The name of the Drawing.
587
- * @returns The Id of the newly inserted Drawing element and the DrawingModel that breaks it down (same value).
588
- * @throws [[IModelError]] if unable to insert the element.
589
- */
590
- static insert(iModelDb: IModelDb, documentListModelId: Id64String, name: string): Id64String;
591
- }
592
- /** A document that represents a section drawing, that is, a graphical documentation derived from a planar
593
- * section of a spatial view. A SectionDrawing element is modelled by a [[SectionDrawingModel]] or a [[GraphicalModel3d]].
594
- * A [[SectionDrawingLocation]] can associate the drawing with a spatial location, enabling [HyperModeling]($hypermodeling).
595
- * @public
596
- */
597
- export declare class SectionDrawing extends Drawing {
598
- /** The type of section used to generate the drawing. */
599
- sectionType: SectionType;
600
- /** The spatial view from which the section was generated. */
601
- spatialView: RelatedElement;
602
- /** A transform from the section drawing model's coordinates to spatial coordinates. */
603
- drawingToSpatialTransform?: Transform;
604
- /** If the section drawing is placed onto a [[Sheet]] via a [[ViewAttachment]], a transform from the sheet's coordinates to spatial coordinates. */
605
- sheetToSpatialTransform?: Transform;
606
- /** If the section drawing is placed onto a [[Sheet]] via a [[ViewAttachment]], the clip to apply to the sheet graphics when drawn in the context
607
- * of the spatial view.
608
- * @note The ClipVector is defined in spatial coordinates.
609
- */
610
- drawingBoundaryClip?: ClipVector;
611
- /** If true, when displaying the section drawing as a [DrawingViewState]($frontend), the [[spatialView]] will also be displayed. */
612
- displaySpatialView: boolean;
613
- /** @internal */
614
- static get className(): string;
615
- /** @internal */
616
- constructor(props: SectionDrawingProps, iModel: IModelDb);
617
- /** Convert to JSON representation. */
618
- toJSON(): SectionDrawingProps;
619
- }
620
- /** The template for a SheetBorder
621
- * @public
622
- */
623
- export declare class SheetBorderTemplate extends Document {
624
- /** @internal */
625
- static get className(): string;
626
- height?: number;
627
- width?: number;
628
- /** @internal */
629
- constructor(props: SheetBorderTemplateProps, iModel: IModelDb);
630
- }
631
- /** The template for a [[Sheet]]
632
- * @public
633
- */
634
- export declare class SheetTemplate extends Document {
635
- /** @internal */
636
- static get className(): string;
637
- height?: number;
638
- width?: number;
639
- border?: Id64String;
640
- /** @internal */
641
- constructor(props: SheetTemplateProps, iModel: IModelDb);
642
- /** @internal */
643
- protected collectReferenceConcreteIds(referenceIds: EntityReferenceSet): void;
644
- }
645
- /** A digital representation of a *sheet of paper*. Modeled by a [[SheetModel]].
646
- * @public
647
- */
648
- export declare class Sheet extends Document {
649
- /** @internal */
650
- static get className(): string;
651
- height: number;
652
- width: number;
653
- scale?: number;
654
- sheetTemplate?: Id64String;
655
- /** @internal */
656
- constructor(props: SheetProps, iModel: IModelDb);
657
- /** @internal */
658
- protected collectReferenceConcreteIds(referenceIds: EntityReferenceSet): void;
659
- /** Create a Code for a Sheet given a name that is meant to be unique within the scope of the specified DocumentListModel.
660
- * @param iModel The IModelDb
661
- * @param scopeModelId The Id of the DocumentListModel that contains the Sheet and provides the scope for its name.
662
- * @param codeValue The Sheet name
663
- */
664
- static createCode(iModel: IModelDb, scopeModelId: CodeScopeProps, codeValue: string): Code;
665
- }
666
- /** Information Record Element is an abstract base class for modeling information records. Information Record
667
- * Element is the default choice if no other subclass of Information Content Element makes sense.
668
- * @public
669
- */
670
- export declare abstract class InformationRecordElement extends InformationContentElement {
671
- /** @internal */
672
- static get className(): string;
673
- /** @internal */
674
- constructor(props: ElementProps, iModel: IModelDb);
675
- }
676
- /** A Definition Element holds configuration-related information that is meant to be referenced / shared.
677
- * @public
678
- */
679
- export declare abstract class DefinitionElement extends InformationContentElement {
680
- /** @internal */
681
- static get className(): string;
682
- /** If true, don't show this DefinitionElement in user interface lists. */
683
- isPrivate: boolean;
684
- /** @internal */
685
- constructor(props: DefinitionElementProps, iModel: IModelDb);
686
- /** @internal */
687
- toJSON(): DefinitionElementProps;
688
- }
689
- /** This abstract class unifies DefinitionGroup and DefinitionContainer for relationship endpoint purposes.
690
- * @note The associated ECClass was added to the BisCore schema in version 1.0.10
691
- * @public
692
- */
693
- export declare abstract class DefinitionSet extends DefinitionElement {
694
- /** @internal */
695
- static get className(): string;
696
- }
697
- /** A DefinitionContainer exclusively owns a set of DefinitionElements contained within its sub-model (of type DefinitionModel).
698
- * @note The associated ECClass was added to the BisCore schema in version 1.0.10
699
- * @public
700
- */
701
- export declare class DefinitionContainer extends DefinitionSet {
702
- /** @internal */
703
- static get className(): string;
704
- /** Create a DefinitionContainer
705
- * @param iModelDb The IModelDb
706
- * @param definitionModelId The Id of the [DefinitionModel]($backend) that will contain this DefinitionContainer element.
707
- * @param code The Code for this DefinitionContainer.
708
- * @param isPrivate The optional hint, that if `true` means it should not be displayed in the UI.
709
- * @returns The newly constructed DefinitionContainer
710
- * @note There is not a predefined CodeSpec for DefinitionContainer elements, so it is the responsibility of the domain or application to create one.
711
- * @throws [[IModelError]] if there is a problem creating the DefinitionContainer
712
- */
713
- static create(iModelDb: IModelDb, definitionModelId: Id64String, code: Code, isPrivate?: boolean): DefinitionContainer;
714
- /** Insert a DefinitionContainer and its sub-model.
715
- * @param iModelDb Insert into this IModelDb
716
- * @param definitionModelId The Id of the [DefinitionModel]($backend) that will contain this DefinitionContainer element.
717
- * @param code The Code for this DefinitionContainer.
718
- * @param isPrivate The optional hint, that if `true` means it should not be displayed in the UI.
719
- * @returns The Id of the newly inserted DefinitionContainer and its newly inserted sub-model (of type DefinitionModel).
720
- * @note There is not a predefined CodeSpec for DefinitionContainer elements, so it is the responsibility of the domain or application to create one.
721
- * @throws [[IModelError]] if there is a problem inserting the DefinitionContainer
722
- */
723
- static insert(iModelDb: IModelDb, definitionModelId: Id64String, code: Code, isPrivate?: boolean): Id64String;
724
- }
725
- /** A non-exclusive set of DefinitionElements grouped using the DefinitionGroupGroupsDefinitions relationship.
726
- * @note The associated ECClass was added to the BisCore schema in version 1.0.10
727
- * @public
728
- */
729
- export declare class DefinitionGroup extends DefinitionSet {
730
- /** @internal */
731
- static get className(): string;
732
- /** Create a DefinitionGroup
733
- * @param iModelDb The IModelDb
734
- * @param definitionModelId The Id of the [DefinitionModel]($backend) that will contain this DefinitionGroup element.
735
- * @param code The Code for this DefinitionGroup
736
- * @param isPrivate The optional hint, that if `true` means it should not be displayed in the UI.
737
- * @returns The newly constructed DefinitionGroup
738
- * @note There is not a predefined CodeSpec for DefinitionGroup elements, so it is the responsibility of the domain or application to create one.
739
- * @throws [[IModelError]] if there is a problem creating the DefinitionGroup
740
- */
741
- static create(iModelDb: IModelDb, definitionModelId: Id64String, code: Code, isPrivate?: boolean): DefinitionGroup;
742
- }
743
- /** Defines a set of properties (the *type*) that may be associated with an element.
744
- * @public
745
- */
746
- export declare abstract class TypeDefinitionElement extends DefinitionElement {
747
- /** @internal */
748
- static get className(): string;
749
- recipe?: RelatedElement;
750
- /** @internal */
751
- constructor(props: TypeDefinitionElementProps, iModel: IModelDb);
752
- /** @internal */
753
- protected collectReferenceConcreteIds(referenceIds: EntityReferenceSet): void;
754
- }
755
- /** Defines a recipe for generating instances from a definition.
756
- * @beta
757
- */
758
- export declare abstract class RecipeDefinitionElement extends DefinitionElement {
759
- /** @internal */
760
- static get className(): string;
761
- /** @internal */
762
- constructor(props: ElementProps, iModel: IModelDb);
763
- }
764
- /** Defines a set of properties (the *type*) that can be associated with a Physical Element. A Physical
765
- * Type has a strong correlation with something that can be ordered from a catalog since all instances
766
- * share a common set of properties.
767
- * @public
768
- */
769
- export declare abstract class PhysicalType extends TypeDefinitionElement {
770
- /** @internal */
771
- static get className(): string;
772
- /** If defined, the [[PhysicalMaterial]] that makes up this PhysicalType. */
773
- physicalMaterial?: RelatedElement;
774
- /** @internal */
775
- constructor(props: PhysicalTypeProps, iModel: IModelDb);
776
- /** @internal */
777
- toJSON(): PhysicalTypeProps;
778
- /** Create a Code for a PhysicalType element given a name that is meant to be unique within the scope of the specified DefinitionModel.
779
- * @param iModel The IModelDb
780
- * @param scopeModelId The Id of the DefinitionModel that contains the PhysicalType element and provides the scope for its name.
781
- * @param codeValue The PhysicalType name
782
- */
783
- static createCode(iModel: IModelDb, scopeModelId: CodeScopeProps, codeValue: string): Code;
784
- }
785
- /** Defines a set of properties (the *type*) that can be associated with a spatial location.
786
- * @public
787
- */
788
- export declare abstract class SpatialLocationType extends TypeDefinitionElement {
789
- /** @internal */
790
- static get className(): string;
791
- /** @internal */
792
- constructor(props: TypeDefinitionElementProps, iModel: IModelDb);
793
- /** Create a Code for a SpatialLocationType element given a name that is meant to be unique within the scope of the specified DefinitionModel.
794
- * @param iModel The IModelDb
795
- * @param scopeModelId The Id of the DefinitionModel that contains the SpatialLocationType element and provides the scope for its name.
796
- * @param codeValue The SpatialLocationType name
797
- */
798
- static createCode(iModel: IModelDb, scopeModelId: CodeScopeProps, codeValue: string): Code;
799
- }
800
- /** A TemplateRecipe3d is a DefinitionElement that has a sub-model that contains the 3d template elements.
801
- * @beta
802
- */
803
- export declare class TemplateRecipe3d extends RecipeDefinitionElement {
804
- /** @internal */
805
- static get className(): string;
806
- /** @internal */
807
- constructor(props: ElementProps, iModel: IModelDb);
808
- /** Create a Code for a TemplateRecipe3d given a name that is meant to be unique within the scope of its Model.
809
- * @param iModelDb The IModelDb
810
- * @param definitionModelId The Id of the [DefinitionModel]($backend) that contains this TemplateRecipe3d element.
811
- * @param codeValue The name of the TemplateRecipe3d element.
812
- */
813
- static createCode(iModelDb: IModelDb, definitionModelId: CodeScopeProps, codeValue: string): Code;
814
- /** Create a TemplateRecipe3d
815
- * @param iModelDb The IModelDb
816
- * @param definitionModelId The Id of the [DefinitionModel]($backend) that contains this TemplateRecipe3d element.
817
- * @param name The name (Code.value) of the TemplateRecipe3d
818
- * @returns The newly constructed TemplateRecipe3d
819
- * @throws [[IModelError]] if there is a problem creating the TemplateRecipe3d
820
- */
821
- static create(iModelDb: IModelDb, definitionModelId: Id64String, name: string, isPrivate?: boolean): TemplateRecipe3d;
822
- /** Insert a TemplateRecipe3d and a PhysicalModel (sub-model) that will contain the 3d template elements.
823
- * @param iModelDb The IModelDb
824
- * @param definitionModelId The Id of the [DefinitionModel]($backend) that contains this TemplateRecipe3d element.
825
- * @param name The name (Code.value) of the TemplateRecipe3d
826
- * @returns The Id of the newly inserted TemplateRecipe3d and the PhysicalModel that sub-models it.
827
- * @throws [[IModelError]] if there is a problem inserting the TemplateRecipe3d or its sub-model.
828
- */
829
- static insert(iModelDb: IModelDb, definitionModelId: Id64String, name: string, isPrivate?: boolean): Id64String;
830
- }
831
- /** Defines a set of properties (the *type*) that can be associated with a 2D Graphical Element.
832
- * @public
833
- */
834
- export declare abstract class GraphicalType2d extends TypeDefinitionElement {
835
- /** @internal */
836
- static get className(): string;
837
- /** @internal */
838
- constructor(props: TypeDefinitionElementProps, iModel: IModelDb);
839
- /** Create a Code for a GraphicalType2d element given a name that is meant to be unique within the scope of the specified DefinitionModel.
840
- * @param iModel The IModelDb
841
- * @param scopeModelId The Id of the DefinitionModel that contains the GraphicalType2d element and provides the scope for its name.
842
- * @param codeValue The GraphicalType2d name
843
- */
844
- static createCode(iModel: IModelDb, scopeModelId: CodeScopeProps, codeValue: string): Code;
845
- }
846
- /** A recipe that uses a 2D template for creating new instances.
847
- * @beta
848
- */
849
- export declare class TemplateRecipe2d extends RecipeDefinitionElement {
850
- /** @internal */
851
- static get className(): string;
852
- /** @internal */
853
- constructor(props: ElementProps, iModel: IModelDb);
854
- /** Create a Code for a TemplateRecipe2d given a name that is meant to be unique within the scope of its Model.
855
- * @param iModelDb The IModelDb
856
- * @param definitionModelId The Id of the [DefinitionModel]($backend) that contains this TemplateRecipe2d element.
857
- * @param codeValue The name of the TemplateRecipe2d element.
858
- */
859
- static createCode(iModelDb: IModelDb, definitionModelId: CodeScopeProps, codeValue: string): Code;
860
- /** Create a TemplateRecipe2d
861
- * @param iModelDb The IModelDb
862
- * @param definitionModelId The Id of the [DefinitionModel]($backend) that contains this TemplateRecipe2d element.
863
- * @param name The name (Code.value) of the TemplateRecipe2d
864
- * @returns The newly constructed TemplateRecipe2d
865
- * @throws [[IModelError]] if there is a problem creating the TemplateRecipe2d
866
- */
867
- static create(iModelDb: IModelDb, definitionModelId: Id64String, name: string, isPrivate?: boolean): TemplateRecipe2d;
868
- /** Insert a TemplateRecipe2d and a DrawingModel (sub-model) that will contain the 2d template elements.
869
- * @param iModelDb The IModelDb
870
- * @param definitionModelId The Id of the [DefinitionModel]($backend) that contains this TemplateRecipe2d element.
871
- * @param name The name (Code.value) of the TemplateRecipe2d
872
- * @returns The Id of the newly inserted TemplateRecipe2d and the PhysicalModel that sub-models it.
873
- * @throws [[IModelError]] if there is a problem inserting the TemplateRecipe2d or its sub-model.
874
- */
875
- static insert(iModelDb: IModelDb, definitionModelId: Id64String, name: string, isPrivate?: boolean): Id64String;
876
- }
877
- /** An abstract base class for elements that establishes a particular modeling perspective for its parent Subject.
878
- * Instances are always sub-modeled by a specialization of Model of the appropriate modeling perspective.
879
- * @see [iModel Information Hierarchy]($docs/bis/guide/data-organization/top-of-the-world), [[Subject]], [[Model]]
880
- * @public
881
- */
882
- export declare abstract class InformationPartitionElement extends InformationContentElement {
883
- /** @internal */
884
- static get className(): string;
885
- /** A human-readable string describing the intent of the partition. */
886
- description?: string;
887
- /** @internal */
888
- constructor(props: InformationPartitionElementProps, iModel: IModelDb);
889
- /** @internal */
890
- toJSON(): InformationPartitionElementProps;
891
- /** Create a code that can be used for any subclass of InformationPartitionElement.
892
- * @param iModelDb The IModelDb
893
- * @param parentSubjectId The Id of the parent Subject that provides the scope for names of its child InformationPartitionElements.
894
- * @param codeValue The InformationPartitionElement name
895
- */
896
- static createCode(iModel: IModelDb, parentSubjectId: CodeScopeProps, codeValue: string): Code;
897
- }
898
- /** A DefinitionPartition element establishes a *Definition* modeling perspective for its parent Subject.
899
- * A DefinitionPartition is always sub-modeled by a DefinitionModel.
900
- * @see [[DefinitionModel]]
901
- * @public
902
- */
903
- export declare class DefinitionPartition extends InformationPartitionElement {
904
- /** @internal */
905
- static get className(): string;
906
- }
907
- /** A DocumentPartition element establishes a *Document* modeling perspective for its parent Subject.
908
- * A DocumentPartition is always sub-modeled by a DocumentListModel.
909
- * @see [[DocumentListModel]]
910
- * @public
911
- */
912
- export declare class DocumentPartition extends InformationPartitionElement {
913
- /** @internal */
914
- static get className(): string;
915
- }
916
- /** A GroupInformationPartition element establishes a *Group Information* modeling perspective for its parent Subject.
917
- * A GroupInformationPartition is always sub-modeled by a GroupInformationModel.
918
- * @see [[GroupInformationModel]]
919
- * @public
920
- */
921
- export declare class GroupInformationPartition extends InformationPartitionElement {
922
- /** @internal */
923
- static get className(): string;
924
- }
925
- /** A GraphicalPartition3d element establishes a *3D Graphical* modeling perspective for its parent Subject.
926
- * A GraphicalPartition3d is always sub-modeled by a GraphicalModel3d.
927
- * @note The associated ECClass was added to the BisCore schema in version 1.0.8
928
- * @see [[GraphicalModel3d]]
929
- * @public
930
- */
931
- export declare class GraphicalPartition3d extends InformationPartitionElement {
932
- /** @internal */
933
- static get className(): string;
934
- }
935
- /** An InformationRecordPartition element establishes a *Information Record* modeling perspective for its parent Subject.
936
- * A InformationRecordPartition is always sub-modeled by an InformationRecordModel.
937
- * @see [[InformationRecordModel]]
938
- * @public
939
- */
940
- export declare class InformationRecordPartition extends InformationPartitionElement {
941
- /** @internal */
942
- static get className(): string;
943
- }
944
- /** A LinkPartition element establishes a *Link* modeling perspective for its parent Subject. A LinkPartition is always sub-modeled by a LinkModel.
945
- * @see [[LinkModel]]
946
- * @public
947
- */
948
- export declare class LinkPartition extends InformationPartitionElement {
949
- /** @internal */
950
- static get className(): string;
951
- }
952
- /** A PhysicalPartition element establishes a *Physical* modeling perspective for its parent Subject. A PhysicalPartition is always sub-modeled by a PhysicalModel.
953
- * @see [[PhysicalModel]]
954
- * @public
955
- */
956
- export declare class PhysicalPartition extends InformationPartitionElement {
957
- /** @internal */
958
- static get className(): string;
959
- }
960
- /** A SpatialLocationPartition element establishes a *SpatialLocation* modeling perspective for its parent Subject.
961
- * A SpatialLocationPartition is always sub-modeled by a SpatialLocationModel.
962
- * @see [[SpatialLocationModel]]
963
- * @public
964
- */
965
- export declare class SpatialLocationPartition extends InformationPartitionElement {
966
- /** @internal */
967
- static get className(): string;
968
- }
969
- /** Group Information is an abstract base class for modeling entities whose main purpose is to reference a group of related elements.
970
- * @public
971
- */
972
- export declare abstract class GroupInformationElement extends InformationReferenceElement {
973
- /** @internal */
974
- static get className(): string;
975
- }
976
- /** An information element that specifies a link.
977
- * @public
978
- */
979
- export declare abstract class LinkElement extends InformationReferenceElement {
980
- /** @internal */
981
- static get className(): string;
982
- /** Create a Code for a LinkElement given a name that is meant to be unique within the scope of the specified Model.
983
- * @param iModel The IModelDb
984
- * @param scopeModelId The Id of the Model that contains the LinkElement and provides the scope for its name.
985
- * @param codeValue The LinkElement name
986
- */
987
- static createCode(iModel: IModelDb, scopeModelId: CodeScopeProps, codeValue: string): Code;
988
- }
989
- /** An information element that specifies a URL link.
990
- * @public
991
- */
992
- export declare class UrlLink extends LinkElement {
993
- /** @internal */
994
- static get className(): string;
995
- description?: string;
996
- url?: string;
997
- /** @internal */
998
- constructor(props: UrlLinkProps, iModel: IModelDb);
999
- /** @internal */
1000
- toJSON(): UrlLinkProps;
1001
- }
1002
- /** Represents a folder-like structure that organizes repositories (typically files) in an external system.
1003
- * @note The associated ECClass was added to the BisCore schema in version 1.0.13
1004
- * @alpha
1005
- */
1006
- export declare class FolderLink extends UrlLink {
1007
- /** @internal */
1008
- static get className(): string;
1009
- }
1010
- /** An information element that links to a repository.
1011
- * @public
1012
- */
1013
- export declare class RepositoryLink extends UrlLink {
1014
- /** @internal */
1015
- static get className(): string;
1016
- repositoryGuid?: GuidString;
1017
- /** @note This property was added to the BisCore schema in version 1.0.13 */
1018
- format?: string;
1019
- /** @internal */
1020
- constructor(props: RepositoryLinkProps, iModel: IModelDb);
1021
- /** @internal */
1022
- toJSON(): RepositoryLinkProps;
1023
- }
1024
- /** An information element that links to an embedded file.
1025
- * @public
1026
- */
1027
- export declare class EmbeddedFileLink extends LinkElement {
1028
- /** @internal */
1029
- static get className(): string;
1030
- }
1031
- /** A real world entity is modeled as a Role Element when a set of external circumstances define an important
1032
- * role (one that is worth tracking) that is not intrinsic to the entity playing the role. For example,
1033
- * a person can play the role of a teacher or a rock can play the role of a boundary marker.
1034
- * @public
1035
- */
1036
- export declare abstract class RoleElement extends Element {
1037
- /** @internal */
1038
- static get className(): string;
1039
- }
1040
- /** A Definition Element that specifies a collection of geometry that is meant to be reused across Geometric
1041
- * Element instances. Leveraging Geometry Parts can help reduce file size and improve display performance.
1042
- * @public
1043
- */
1044
- export declare class GeometryPart extends DefinitionElement {
1045
- /** @internal */
1046
- static get className(): string;
1047
- geom?: GeometryStreamProps;
1048
- /** How to build the part's GeometryStream. This is used for insert and update only. It is not a persistent property. It will be undefined in the properties returned by functions that read a persistent element. It may be specified as an alternative to `geom` when inserting or updating an element.
1049
- * @alpha
1050
- */
1051
- elementGeometryBuilderParams?: ElementGeometryBuilderParamsForPart;
1052
- bbox: ElementAlignedBox3d;
1053
- /** @internal */
1054
- constructor(props: GeometryPartProps, iModel: IModelDb);
1055
- /** @internal */
1056
- toJSON(): GeometryPartProps;
1057
- /** Create a Code for a GeometryPart element given a name that is meant to be unique within the scope of the specified DefinitionModel.
1058
- * @param iModel The IModelDb
1059
- * @param scopeModelId The Id of the DefinitionModel that contains the GeometryPart element and provides the scope for its name.
1060
- * @param codeValue The GeometryPart name
1061
- * @note GeometryPart elements are not required to be named (have a non-empty Code).
1062
- */
1063
- static createCode(iModel: IModelDb, scopeModelId: CodeScopeProps, codeValue: string): Code;
1064
- }
1065
- /** The definition element for a line style
1066
- * @public
1067
- */
1068
- export declare class LineStyle extends DefinitionElement {
1069
- /** @internal */
1070
- static get className(): string;
1071
- description?: string;
1072
- data: string;
1073
- /** @internal */
1074
- constructor(props: LineStyleProps, iModel: IModelDb);
1075
- /** Create a Code for a LineStyle definition given a name that is meant to be unique within the scope of the specified model.
1076
- * @param iModel The IModel
1077
- * @param scopeModelId The Id of the DefinitionModel that contains the LineStyle and provides the scope for its name.
1078
- * @param codeValue The name of the LineStyle
1079
- * @returns A LineStyle Code
1080
- */
1081
- static createCode(iModel: IModelDb, scopeModelId: CodeScopeProps, codeValue: string): Code;
1082
- }
1083
- /** Describes how to animate a view of a [[GeometricModel]] to show change over time using a [RenderSchedule.Script]($common).
1084
- * @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.
1085
- * @public
1086
- */
1087
- export declare class RenderTimeline extends InformationRecordElement {
1088
- /** @internal */
1089
- static get className(): string;
1090
- /** A human-readable description of the timeline, which may be an empty string. */
1091
- description: string;
1092
- /** The JSON representation of the instructions for visualizing change over time.
1093
- * @see [RenderSchedule.Script]($common) for the API for working with the script.
1094
- */
1095
- scriptProps: RenderSchedule.ScriptProps;
1096
- /** @internal */
1097
- protected constructor(props: RenderTimelineProps, iModel: IModelDb);
1098
- static fromJSON(props: RenderTimelineProps, iModel: IModelDb): RenderTimeline;
1099
- toJSON(): RenderTimelineProps;
1100
- private static parseScriptProps;
1101
- /** @internal */
1102
- protected collectReferenceConcreteIds(ids: EntityReferenceSet): void;
1103
- /** @alpha */
1104
- protected static onCloned(context: IModelElementCloneContext, sourceProps: RenderTimelineProps, targetProps: RenderTimelineProps): void;
1105
- /** Remap Ids when cloning a RenderSchedule.Script between iModels on a DisplayStyle or RenderTimeline.
1106
- * @internal
1107
- */
1108
- static remapScript(context: IModelElementCloneContext, input: RenderSchedule.ScriptProps): RenderSchedule.ScriptProps;
1109
- }
1
+ /** @packageDocumentation
2
+ * @module Elements
3
+ */
4
+ import { GuidString, Id64Set, Id64String } from "@itwin/core-bentley";
5
+ import { AxisAlignedBox3d, Code, CodeScopeProps, ConcreteEntityTypes, DefinitionElementProps, ElementAlignedBox3d, ElementGeometryBuilderParams, ElementGeometryBuilderParamsForPart, ElementProps, EntityMetaData, EntityReferenceSet, GeometricElement2dProps, GeometricElement3dProps, GeometricElementProps, GeometryPartProps, GeometryStreamProps, InformationPartitionElementProps, LineStyleProps, ModelProps, PhysicalElementProps, PhysicalTypeProps, Placement2d, Placement3d, RelatedElement, RenderSchedule, RenderTimelineProps, RepositoryLinkProps, SectionDrawingLocationProps, SectionDrawingProps, SectionType, SheetBorderTemplateProps, SheetProps, SheetTemplateProps, SubjectProps, TypeDefinition, TypeDefinitionElementProps, UrlLinkProps } from "@itwin/core-common";
6
+ import { ClipVector, Transform } from "@itwin/core-geometry";
7
+ import { Entity } from "./Entity";
8
+ import { IModelDb } from "./IModelDb";
9
+ import { IModelElementCloneContext } from "./IModelElementCloneContext";
10
+ /** Argument for the `Element.onXxx` static methods
11
+ * @beta
12
+ */
13
+ export interface OnElementArg {
14
+ /** The iModel for the Element affected by this method. */
15
+ iModel: IModelDb;
16
+ }
17
+ /** Argument for `Element.onInsert` and `Element.onUpdate` static methods.
18
+ * @beta
19
+ */
20
+ export interface OnElementPropsArg extends OnElementArg {
21
+ /** The properties of the Element affected by this method.
22
+ * @note the properties may be modified. If so the modified values will be inserted/updated.
23
+ */
24
+ props: ElementProps;
25
+ }
26
+ /** Argument for the `Element.onXxx` static methods that notify of operations to an existing Element supplying its Id, ModelId and FederationGuid.
27
+ * @beta
28
+ */
29
+ export interface OnElementIdArg extends OnElementArg {
30
+ /** The Id of the Element affected by this method */
31
+ id: Id64String;
32
+ /** The ModelId of the element affected by this method */
33
+ model: Id64String;
34
+ /** The federationGuid of the element affected by this method */
35
+ federationGuid: GuidString;
36
+ }
37
+ /** Argument for the `Element.onChildXxx` static methods
38
+ * @beta
39
+ */
40
+ export interface OnChildElementArg extends OnElementArg {
41
+ parentId: Id64String;
42
+ }
43
+ /** Argument for the `Element.onChildXxx` static methods that supply the properties of the child Element to be inserted or updated.
44
+ * @beta
45
+ */
46
+ export interface OnChildElementPropsArg extends OnChildElementArg {
47
+ /** The new properties of the child Element for this method. */
48
+ childProps: Readonly<ElementProps>;
49
+ }
50
+ /** Argument for the `Element.onChildXxx` static methods that only supply the Id of the child Element.
51
+ * @beta
52
+ */
53
+ export interface OnChildElementIdArg extends OnChildElementArg {
54
+ /** The Id of the child element for this method */
55
+ childId: Id64String;
56
+ }
57
+ /** Argument for the `Element.onSubModelInsert` static method
58
+ * @beta
59
+ */
60
+ export interface OnSubModelPropsArg extends OnElementArg {
61
+ /** The properties of the prospective sub-model */
62
+ subModelProps: ModelProps;
63
+ }
64
+ /** Argument for several `Element.onSubModelXxx` static methods
65
+ * @beta
66
+ */
67
+ export interface OnSubModelIdArg extends OnElementArg {
68
+ /** The modelId of the sub Model */
69
+ subModelId: Id64String;
70
+ }
71
+ /** Elements are the smallest individually identifiable building blocks for modeling the real world in an iModel.
72
+ * Each element represents an entity in the real world. Sets of Elements (contained in [[Model]]s) are used to model
73
+ * other Elements that represent larger scale real world entities. Using this recursive modeling strategy,
74
+ * Elements can represent entities at any scale. Elements can represent physical things or abstract concepts
75
+ * or simply be information records.
76
+ *
77
+ * Every Element has a 64-bit id (inherited from Entity) that uniquely identifies it within an iModel. Every Element also
78
+ * has a "code" that identifies its meaning in the real world. Additionally, Elements may have a "federationGuid"
79
+ * to hold a GUID, if the element was assigned that GUID by some other federated database. The iModel database enforces
80
+ * uniqueness of id, code, and federationGuid.
81
+ *
82
+ * See:
83
+ * * [Element Fundamentals]($docs/bis/guide/fundamentals/element-fundamentals.md)
84
+ * * [Working with schemas and elements in TypeScript]($docs/learning/backend/SchemasAndElementsInTypeScript.md)
85
+ * * [Creating elements]($docs/learning/backend/CreateElements.md)
86
+ * @public
87
+ */
88
+ export declare class Element extends Entity {
89
+ /** @internal */
90
+ static get className(): string;
91
+ /** @internal */
92
+ static get protectedOperations(): string[];
93
+ /** The ModelId of the [Model]($docs/bis/guide/fundamentals/model-fundamentals.md) containing this element */
94
+ readonly model: Id64String;
95
+ /** The [Code]($docs/bis/guide/fundamentals/codes.md) for this element */
96
+ code: Code;
97
+ /** The parent element, if present, of this element. */
98
+ parent?: RelatedElement;
99
+ /** A [FederationGuid]($docs/bis/guide/fundamentals/element-fundamentals.md#federationguid) assigned to this element by some other federated database */
100
+ federationGuid?: GuidString;
101
+ /** A [user-assigned label]($docs/bis/guide/fundamentals/element-fundamentals.md#userlabel) for this element. */
102
+ userLabel?: string;
103
+ /** Optional [json properties]($docs/bis/guide/fundamentals/element-fundamentals.md#jsonproperties) of this element. */
104
+ readonly jsonProperties: {
105
+ [key: string]: any;
106
+ };
107
+ /** constructor for Element.
108
+ * @internal
109
+ */
110
+ constructor(props: ElementProps, iModel: IModelDb);
111
+ /** Called before a new Element is inserted.
112
+ * @note throw an exception to disallow the insert
113
+ * @note If you override this method, you must call super.
114
+ * @note `this` is the class of the Element to be inserted
115
+ * @beta
116
+ */
117
+ protected static onInsert(arg: OnElementPropsArg): void;
118
+ /** Called after a new Element was inserted.
119
+ * @note If you override this method, you must call super.
120
+ * @note `this` is the class of the Element that was inserted
121
+ * @beta
122
+ */
123
+ protected static onInserted(arg: OnElementIdArg): void;
124
+ /** Called before an Element is updated.
125
+ * @note throw an exception to disallow the update
126
+ * @note If you override this method, you must call super.
127
+ * @note `this` is the class of the Element to be updated
128
+ * @beta
129
+ */
130
+ protected static onUpdate(arg: OnElementPropsArg): void;
131
+ /** Called after an Element was updated.
132
+ * @note If you override this method, you must call super.
133
+ * @note `this` is the class of the Element that was updated
134
+ * @beta
135
+ */
136
+ protected static onUpdated(_arg: OnElementIdArg): void;
137
+ /** Called before an Element is deleted.
138
+ * @note throw an exception to disallow the delete
139
+ * @note If you override this method, you must call super.
140
+ * @note `this` is the class of the Element to be deleted
141
+ * @beta
142
+ */
143
+ protected static onDelete(arg: OnElementIdArg): void;
144
+ /** Called after an Element was deleted.
145
+ * @note If you override this method, you must call super.
146
+ * @note `this` is the class of the Element that was deleted
147
+ * @beta
148
+ */
149
+ protected static onDeleted(_arg: OnElementIdArg): void;
150
+ /** Called when an element with an instance of this class as its parent is about to be deleted.
151
+ * @note throw an exception if the element should not be deleted
152
+ * @note implementers should not presume that the element was deleted if this method does not throw,
153
+ * since the delete may fail for other reasons. Instead, rely on [[onChildDeleted]] for that purpose.
154
+ * @note `this` is the class of the parent Element whose child will be deleted
155
+ * @beta
156
+ */
157
+ protected static onChildDelete(_arg: OnChildElementIdArg): void;
158
+ /** Called after an element with an instance of this class as its parent was successfully deleted.
159
+ * @note `this` is the class of the parent Element whose child was deleted
160
+ * @beta
161
+ */
162
+ protected static onChildDeleted(_arg: OnChildElementIdArg): void;
163
+ /** Called when a *new element* with an instance of this class as its parent is about to be inserted.
164
+ * @note throw an exception if the element should not be inserted
165
+ * @note `this` is the class of the prospective parent Element.
166
+ * @beta
167
+ */
168
+ protected static onChildInsert(_arg: OnChildElementPropsArg): void;
169
+ /** Called after a *new element* with an instance of this class as its parent was inserted.
170
+ * @note `this` is the class of the parent Element.
171
+ * @beta
172
+ */
173
+ protected static onChildInserted(_arg: OnChildElementIdArg): void;
174
+ /** Called when an element with an instance of this class as its parent is about to be updated.
175
+ * @note throw an exception if the element should not be updated
176
+ * @note `this` is the class of the parent Element.
177
+ * @beta
178
+ */
179
+ protected static onChildUpdate(_arg: OnChildElementPropsArg): void;
180
+ /** Called after an element with an instance of this the class as its parent was updated.
181
+ * @note `this` is the class of the parent Element.
182
+ * @beta
183
+ */
184
+ protected static onChildUpdated(_arg: OnChildElementIdArg): void;
185
+ /** Called when an *existing element* is about to be updated so that an instance of this class will become its new parent.
186
+ * @note throw an exception if the element should not be added
187
+ * @note `this` is the class of the prospective parent Element.
188
+ * @beta
189
+ */
190
+ protected static onChildAdd(_arg: OnChildElementPropsArg): void;
191
+ /** Called after an *existing element* has been updated so that an instance of this class is its new parent.
192
+ * @note `this` is the class of the new parent Element.
193
+ * @beta
194
+ */
195
+ protected static onChildAdded(_arg: OnChildElementIdArg): void;
196
+ /** Called when an element with an instance of this class as its parent is about to be updated change to a different parent.
197
+ * @note throw an exception if the element should not be dropped
198
+ * @note `this` is the class of the parent Element.
199
+ * @beta
200
+ */
201
+ protected static onChildDrop(_arg: OnChildElementIdArg): void;
202
+ /** Called after an element with an instance of this class as its previous parent was updated to have a new parent.
203
+ * @note `this` is the class of the previous parent Element.
204
+ * @beta
205
+ */
206
+ protected static onChildDropped(_arg: OnChildElementIdArg): void;
207
+ /** Called when an instance of this class is being *sub-modeled* by a new Model.
208
+ * @note throw an exception if model should not be inserted
209
+ * @note `this` is the class of Element to be sub-modeled.
210
+ * @beta
211
+ */
212
+ protected static onSubModelInsert(_arg: OnSubModelPropsArg): void;
213
+ /** Called after an instance of this class was *sub-modeled* by a new Model.
214
+ * @note `this` is the class of Element that is now sub-modeled.
215
+ * @beta
216
+ */
217
+ protected static onSubModelInserted(_arg: OnSubModelIdArg): void;
218
+ /** Called when a sub-model of an instance of this class is being deleted.
219
+ * @note throw an exception if model should not be deleted
220
+ * @note `this` is the class of Element that is sub-modeled.
221
+ * @beta
222
+ */
223
+ protected static onSubModelDelete(_arg: OnSubModelIdArg): void;
224
+ /** Called after a sub-model of an instance of this class was deleted.
225
+ * @note `this` is the class of Element that was sub-modeled.
226
+ * @beta
227
+ */
228
+ protected static onSubModelDeleted(_arg: OnSubModelIdArg): void;
229
+ /** Called during the iModel transformation process after an Element from the source iModel was *cloned* for the target iModel.
230
+ * The transformation process automatically handles remapping BisCore properties and those that are properly described in ECSchema.
231
+ * 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.
232
+ * @param _context The context that persists any remapping between the source iModel and target iModel.
233
+ * @param _sourceProps The ElementProps for the source Element that was cloned.
234
+ * @param _targetProps The ElementProps that are a result of the clone. These can be further modified.
235
+ * @note If you override this method, you must call super.
236
+ * @beta
237
+ */
238
+ protected static onCloned(_context: IModelElementCloneContext, _sourceProps: ElementProps, _targetProps: ElementProps): void;
239
+ /** Called when a *root* element in a subgraph is changed and before its outputs are processed.
240
+ * This special callback is made when:
241
+ * * the element is part of an [[ElementDrivesElement]] graph, and
242
+ * * the element has no inputs, and
243
+ * * none of the element's outputs have been processed.
244
+ * @see [[ElementDrivesElement]] for more on element dependency graphs.
245
+ * @beta
246
+ */
247
+ protected static onBeforeOutputsHandled(_id: Id64String, _iModel: IModelDb): void;
248
+ /** Called on an element in a graph after all of its inputs have been processed and before its outputs are processed.
249
+ * This callback is made when:
250
+ * * the specified element is part of an [[ElementDrivesElement]] graph, and
251
+ * * there was a direct change to some element upstream in the dependency graph.
252
+ * * all upstream elements in the graph have been processed.
253
+ * * none of the downstream elements have been processed.
254
+ * This method is not called if none of the element's inputs were changed.
255
+ * @see [[ElementDrivesElement]] for more on element dependency graphs.
256
+ * @beta
257
+ */
258
+ protected static onAllInputsHandled(_id: Id64String, _iModel: IModelDb): void;
259
+ /** Save this Element's properties to an object for serializing to JSON.
260
+ * @internal
261
+ */
262
+ toJSON(): ElementProps;
263
+ /** Collect the Ids of this element's *references* at this level of the class hierarchy.
264
+ * @deprecated in 3.x. use [[collectReferenceIds]] instead, the use of the term *predecessors* was confusing and became inaccurate when the transformer could handle cycles
265
+ * @beta
266
+ */
267
+ protected collectPredecessorIds(predecessorIds: EntityReferenceSet): void;
268
+ protected collectReferenceIds(referenceIds: EntityReferenceSet): void;
269
+ /** Get the Ids of this element's *references*. A *reference* is any element whose id is stored in the EC data of this element
270
+ * This is important for cloning operations but can be useful in other situations as well.
271
+ * @beta
272
+ * @deprecated in 3.x. use [[getReferenceIds]] instead, the use of the term *predecessors* was confusing and became inaccurate when the transformer could handle cycles
273
+ */
274
+ getPredecessorIds(): Id64Set;
275
+ /** A *required reference* is an element that had to be inserted before this element could have been inserted.
276
+ * This is the list of property keys on this element that store references to those elements
277
+ * @note This should be overridden (with `super` called) at each level of the class hierarchy that introduces required references.
278
+ * @note any property listed here must be added to the reference ids in [[collectReferenceIds]]
279
+ * @beta
280
+ */
281
+ static readonly requiredReferenceKeys: ReadonlyArray<string>;
282
+ /** A map of every [[requiredReferenceKeys]] on this class to their entity type.
283
+ * @note This should be overridden (with `super` called) at each level of the class hierarchy that introduces required references.
284
+ * @alpha
285
+ */
286
+ static readonly requiredReferenceKeyTypeMap: Record<string, ConcreteEntityTypes>;
287
+ /** Get the class metadata for this element. */
288
+ getClassMetaData(): EntityMetaData | undefined;
289
+ private getAllUserProperties;
290
+ /** Get a set of JSON user properties by namespace */
291
+ getUserProperties(namespace: string): any;
292
+ /** Change a set of user JSON properties of this Element by namespace. */
293
+ setUserProperties(nameSpace: string, value: any): void;
294
+ /** Remove a set of JSON user properties, specified by namespace, from this Element */
295
+ removeUserProperties(nameSpace: string): void;
296
+ /** Get a JSON property of this element, by namespace */
297
+ getJsonProperty(nameSpace: string): any;
298
+ setJsonProperty(nameSpace: string, value: any): void;
299
+ /** Get a display label for this Element. By default returns userLabel if present, otherwise code value. */
300
+ getDisplayLabel(): string;
301
+ /** Get a list of HTML strings that describe this Element for the tooltip. Strings will be listed on separate lines in the tooltip.
302
+ * Any instances of the pattern `%{tag}` will be replaced by the localized value of tag.
303
+ */
304
+ getToolTipMessage(): string[];
305
+ /**
306
+ * Insert this Element into the iModel.
307
+ * @see [[IModelDb.Elements.insertElement]]
308
+ * @note For convenience, the value of `this.id` is updated to reflect the resultant element's id.
309
+ * However when `this.federationGuid` is not present or undefined, a new Guid will be generated and stored on the resultant element. But
310
+ * the value of `this.federationGuid` is *not* updated. Generally, it is best to re-read the element after inserting (e.g. via [[IModelDb.Elements.getElement]])
311
+ * if you intend to continue working with it. That will ensure its values reflect the persistent state.
312
+ */
313
+ insert(): string;
314
+ /** Update this Element in the iModel. */
315
+ update(): void;
316
+ /** Delete this Element from the iModel. */
317
+ delete(): void;
318
+ }
319
+ /** An abstract base class to model real world entities that intrinsically have geometry.
320
+ * @public
321
+ */
322
+ export declare abstract class GeometricElement extends Element {
323
+ /** @internal */
324
+ static get className(): string;
325
+ /** The Id of the [[Category]] for this GeometricElement. */
326
+ category: Id64String;
327
+ /** The GeometryStream for this GeometricElement. */
328
+ geom?: GeometryStreamProps;
329
+ /** How to build the element's GeometryStream. This is used for insert and update only. It is not a persistent property. It will be undefined in the properties returned by functions that read a persistent element. It may be specified as an alternative to `geom` when inserting or updating an element.
330
+ * @alpha
331
+ */
332
+ elementGeometryBuilderParams?: ElementGeometryBuilderParams;
333
+ /** The origin, orientation, and bounding box of this GeometricElement. */
334
+ abstract get placement(): Placement2d | Placement3d;
335
+ /** @internal */
336
+ constructor(props: GeometricElementProps, iModel: IModelDb);
337
+ /** Type guard for instanceof [[GeometricElement3d]] */
338
+ is3d(): this is GeometricElement3d;
339
+ /** Type guard for instanceof [[GeometricElement2d]] */
340
+ is2d(): this is GeometricElement2d;
341
+ /** Get the [Transform]($geometry) from the Placement of this GeometricElement */
342
+ getPlacementTransform(): Transform;
343
+ calculateRange3d(): AxisAlignedBox3d;
344
+ /** Obtain the JSON representation of this element. */
345
+ toJSON(): GeometricElementProps;
346
+ protected collectReferenceIds(referenceIds: EntityReferenceSet): void;
347
+ /** @beta */
348
+ static readonly requiredReferenceKeys: ReadonlyArray<string>;
349
+ /** @alpha */
350
+ static readonly requiredReferenceKeyTypeMap: Record<string, ConcreteEntityTypes>;
351
+ }
352
+ /** An abstract base class to model real world entities that intrinsically have 3d geometry.
353
+ * See [how to create a GeometricElement3d]($docs/learning/backend/CreateElements.md#GeometricElement3d).
354
+ * @public
355
+ */
356
+ export declare abstract class GeometricElement3d extends GeometricElement {
357
+ /** @internal */
358
+ static get className(): string;
359
+ placement: Placement3d;
360
+ typeDefinition?: TypeDefinition;
361
+ /** @internal */
362
+ constructor(props: GeometricElement3dProps, iModel: IModelDb);
363
+ /** @internal */
364
+ toJSON(): GeometricElement3dProps;
365
+ protected collectReferenceIds(referenceIds: EntityReferenceSet): void;
366
+ }
367
+ /** A 3d Graphical Element
368
+ * @public
369
+ */
370
+ export declare abstract class GraphicalElement3d extends GeometricElement3d {
371
+ /** @internal */
372
+ static get className(): string;
373
+ /** @internal */
374
+ constructor(props: GeometricElement3dProps, iModel: IModelDb);
375
+ }
376
+ /** An abstract base class to model information entities that intrinsically have 2d geometry.
377
+ * @public
378
+ */
379
+ export declare abstract class GeometricElement2d extends GeometricElement {
380
+ /** @internal */
381
+ static get className(): string;
382
+ placement: Placement2d;
383
+ typeDefinition?: TypeDefinition;
384
+ /** @internal */
385
+ constructor(props: GeometricElement2dProps, iModel: IModelDb);
386
+ /** @internal */
387
+ toJSON(): GeometricElement2dProps;
388
+ protected collectReferenceIds(referenceIds: EntityReferenceSet): void;
389
+ }
390
+ /** An abstract base class for 2d Geometric Elements that are used to convey information within graphical presentations (like drawings).
391
+ * @public
392
+ */
393
+ export declare abstract class GraphicalElement2d extends GeometricElement2d {
394
+ /** @internal */
395
+ static get className(): string;
396
+ /** @internal */
397
+ constructor(props: GeometricElement2dProps, iModel: IModelDb);
398
+ }
399
+ /** 2d element used to annotate drawings and sheets.
400
+ * @public
401
+ */
402
+ export declare class AnnotationElement2d extends GraphicalElement2d {
403
+ /** @internal */
404
+ static get className(): string;
405
+ /** @internal */
406
+ constructor(props: GeometricElement2dProps, iModel: IModelDb);
407
+ }
408
+ /** 2d element used to persist graphics for use in drawings.
409
+ * @public
410
+ */
411
+ export declare class DrawingGraphic extends GraphicalElement2d {
412
+ /** @internal */
413
+ static get className(): string;
414
+ /** @internal */
415
+ constructor(props: GeometricElement2dProps, iModel: IModelDb);
416
+ }
417
+ /** 2D Text Annotation
418
+ * @public
419
+ */
420
+ export declare class TextAnnotation2d extends AnnotationElement2d {
421
+ /** @internal */
422
+ static get className(): string;
423
+ /** @internal */
424
+ constructor(props: GeometricElement2dProps, iModel: IModelDb);
425
+ }
426
+ /** 3D Text Annotation
427
+ * @public
428
+ */
429
+ export declare class TextAnnotation3d extends GraphicalElement3d {
430
+ /** @internal */
431
+ static get className(): string;
432
+ /** @internal */
433
+ constructor(props: GeometricElement3dProps, iModel: IModelDb);
434
+ }
435
+ /** An Element that occupies real world space. Its coordinates are in the project space of its iModel.
436
+ * @public
437
+ */
438
+ export declare abstract class SpatialElement extends GeometricElement3d {
439
+ /** @internal */
440
+ static get className(): string;
441
+ /** @internal */
442
+ constructor(props: GeometricElement3dProps, iModel: IModelDb);
443
+ }
444
+ /** An Element that is spatially located, has mass, and can be *touched*.
445
+ * @public
446
+ */
447
+ export declare abstract class PhysicalElement extends SpatialElement {
448
+ /** @internal */
449
+ static get className(): string;
450
+ /** If defined, the [[PhysicalMaterial]] that makes up this PhysicalElement. */
451
+ physicalMaterial?: RelatedElement;
452
+ /** @internal */
453
+ constructor(props: PhysicalElementProps, iModel: IModelDb);
454
+ /** @internal */
455
+ toJSON(): PhysicalElementProps;
456
+ }
457
+ /** Identifies a *tracked* real world location but has no mass and cannot be *touched*.
458
+ * @public
459
+ */
460
+ export declare abstract class SpatialLocationElement extends SpatialElement {
461
+ /** @internal */
462
+ static get className(): string;
463
+ /** @internal */
464
+ constructor(props: GeometricElement3dProps, iModel: IModelDb);
465
+ }
466
+ /** A Volume Element is a Spatial Location Element that is restricted to defining a volume.
467
+ * @public
468
+ */
469
+ export declare class VolumeElement extends SpatialLocationElement {
470
+ /** @internal */
471
+ static get className(): string;
472
+ /** @internal */
473
+ constructor(props: GeometricElement3dProps, iModel: IModelDb);
474
+ }
475
+ /** A SectionDrawingLocation element identifies the location of a [[SectionDrawing]] in the context of a [[SpatialModel]],
476
+ * enabling [HyperModeling]($hypermodeling).
477
+ * @note The associated ECClass was added to the BisCore schema in version 1.0.11.
478
+ * @public
479
+ */
480
+ export declare class SectionDrawingLocation extends SpatialLocationElement {
481
+ /** The Id of the [[ViewDefinition]] to which this location refers. */
482
+ sectionView: RelatedElement;
483
+ /** @internal */
484
+ static get className(): string;
485
+ constructor(props: SectionDrawingLocationProps, iModel: IModelDb);
486
+ /** @internal */
487
+ toJSON(): SectionDrawingLocationProps;
488
+ }
489
+ /** Information Content Element is an abstract base class for modeling pure information entities. Only the
490
+ * core framework should directly subclass from Information Content Element. Domain and application developers
491
+ * should start with the most appropriate subclass of Information Content Element.
492
+ * @public
493
+ */
494
+ export declare abstract class InformationContentElement extends Element {
495
+ /** @internal */
496
+ static get className(): string;
497
+ /** @internal */
498
+ constructor(props: ElementProps, iModel: IModelDb);
499
+ }
500
+ /** Element used in conjunction with bis:ElementDrivesElement relationships to bundle multiple inputs before
501
+ * driving the output element.
502
+ * @beta
503
+ */
504
+ export declare abstract class DriverBundleElement extends InformationContentElement {
505
+ /** @internal */
506
+ static get className(): string;
507
+ /** @internal */
508
+ constructor(props: ElementProps, iModel: IModelDb);
509
+ }
510
+ /** Information Reference is an abstract base class for modeling entities whose main purpose is to reference something else.
511
+ * @public
512
+ */
513
+ export declare abstract class InformationReferenceElement extends InformationContentElement {
514
+ /** @internal */
515
+ static get className(): string;
516
+ /** @internal */
517
+ constructor(props: ElementProps, iModel: IModelDb);
518
+ }
519
+ /** A Subject is an information element that describes what this repository (or part thereof) is about.
520
+ * See [how to create a Subject element]$(docs/learning/backend/CreateElements.md#Subject).
521
+ * @public
522
+ */
523
+ export declare class Subject extends InformationReferenceElement {
524
+ /** @internal */
525
+ static get className(): string;
526
+ description?: string;
527
+ /** @internal */
528
+ constructor(props: SubjectProps, iModel: IModelDb);
529
+ /** @internal */
530
+ toJSON(): SubjectProps;
531
+ /** Create a Code for a Subject given a name that is meant to be unique within the scope of its parent Subject.
532
+ * @param iModelDb The IModelDb
533
+ * @param parentSubjectId The Id of the parent Subject that provides the scope for names of its child Subjects.
534
+ * @param codeValue The child Subject name
535
+ */
536
+ static createCode(iModelDb: IModelDb, parentSubjectId: CodeScopeProps, codeValue: string): Code;
537
+ /** Create a Subject
538
+ * @param iModelDb The IModelDb
539
+ * @param parentSubjectId The new Subject will be a child of this Subject
540
+ * @param name The name (codeValue) of the Subject
541
+ * @param description The optional description of the Subject
542
+ * @returns The newly constructed Subject
543
+ * @throws [[IModelError]] if there is a problem creating the Subject
544
+ */
545
+ static create(iModelDb: IModelDb, parentSubjectId: Id64String, name: string, description?: string): Subject;
546
+ /** Insert a Subject
547
+ * @param iModelDb Insert into this IModelDb
548
+ * @param parentSubjectId The new Subject will be inserted as a child of this Subject
549
+ * @param name The name (codeValue) of the Subject
550
+ * @param description The optional description of the Subject
551
+ * @returns The Id of the newly inserted Subject
552
+ * @throws [[IModelError]] if there is a problem inserting the Subject
553
+ */
554
+ static insert(iModelDb: IModelDb, parentSubjectId: Id64String, name: string, description?: string): Id64String;
555
+ }
556
+ /** An InformationContentElement that identifies the content of a document.
557
+ * The realized form of a document is called a DocumentCarrier (different class than Document).
558
+ * For example, a will is a legal document. The will published into a PDF file is an ElectronicDocumentCopy.
559
+ * The will printed onto paper is a PrintedDocumentCopy.
560
+ * In this example, the Document only identifies, names, and tracks the content of the will.
561
+ * @public
562
+ */
563
+ export declare abstract class Document extends InformationContentElement {
564
+ /** @internal */
565
+ static get className(): string;
566
+ /** @internal */
567
+ constructor(props: ElementProps, iModel: IModelDb);
568
+ }
569
+ /** 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]].
570
+ * @public
571
+ */
572
+ export declare class Drawing extends Document {
573
+ /** @internal */
574
+ static get className(): string;
575
+ /** @internal */
576
+ constructor(props: ElementProps, iModel: IModelDb);
577
+ /** Create a Code for a Drawing given a name that is meant to be unique within the scope of the specified DocumentListModel.
578
+ * @param iModel The IModelDb
579
+ * @param scopeModelId The Id of the DocumentListModel that contains the Drawing and provides the scope for its name.
580
+ * @param codeValue The Drawing name
581
+ */
582
+ static createCode(iModel: IModelDb, scopeModelId: CodeScopeProps, codeValue: string): Code;
583
+ /** Insert a Drawing element and a DrawingModel that breaks it down.
584
+ * @param iModelDb Insert into this iModel
585
+ * @param documentListModelId Insert the new Drawing into this DocumentListModel
586
+ * @param name The name of the Drawing.
587
+ * @returns The Id of the newly inserted Drawing element and the DrawingModel that breaks it down (same value).
588
+ * @throws [[IModelError]] if unable to insert the element.
589
+ */
590
+ static insert(iModelDb: IModelDb, documentListModelId: Id64String, name: string): Id64String;
591
+ }
592
+ /** A document that represents a section drawing, that is, a graphical documentation derived from a planar
593
+ * section of a spatial view. A SectionDrawing element is modelled by a [[SectionDrawingModel]] or a [[GraphicalModel3d]].
594
+ * A [[SectionDrawingLocation]] can associate the drawing with a spatial location, enabling [HyperModeling]($hypermodeling).
595
+ * @public
596
+ */
597
+ export declare class SectionDrawing extends Drawing {
598
+ /** The type of section used to generate the drawing. */
599
+ sectionType: SectionType;
600
+ /** The spatial view from which the section was generated. */
601
+ spatialView: RelatedElement;
602
+ /** A transform from the section drawing model's coordinates to spatial coordinates. */
603
+ drawingToSpatialTransform?: Transform;
604
+ /** If the section drawing is placed onto a [[Sheet]] via a [[ViewAttachment]], a transform from the sheet's coordinates to spatial coordinates. */
605
+ sheetToSpatialTransform?: Transform;
606
+ /** If the section drawing is placed onto a [[Sheet]] via a [[ViewAttachment]], the clip to apply to the sheet graphics when drawn in the context
607
+ * of the spatial view.
608
+ * @note The ClipVector is defined in spatial coordinates.
609
+ */
610
+ drawingBoundaryClip?: ClipVector;
611
+ /** If true, when displaying the section drawing as a [DrawingViewState]($frontend), the [[spatialView]] will also be displayed. */
612
+ displaySpatialView: boolean;
613
+ /** @internal */
614
+ static get className(): string;
615
+ /** @internal */
616
+ constructor(props: SectionDrawingProps, iModel: IModelDb);
617
+ /** Convert to JSON representation. */
618
+ toJSON(): SectionDrawingProps;
619
+ }
620
+ /** The template for a SheetBorder
621
+ * @public
622
+ */
623
+ export declare class SheetBorderTemplate extends Document {
624
+ /** @internal */
625
+ static get className(): string;
626
+ height?: number;
627
+ width?: number;
628
+ /** @internal */
629
+ constructor(props: SheetBorderTemplateProps, iModel: IModelDb);
630
+ }
631
+ /** The template for a [[Sheet]]
632
+ * @public
633
+ */
634
+ export declare class SheetTemplate extends Document {
635
+ /** @internal */
636
+ static get className(): string;
637
+ height?: number;
638
+ width?: number;
639
+ border?: Id64String;
640
+ /** @internal */
641
+ constructor(props: SheetTemplateProps, iModel: IModelDb);
642
+ protected collectReferenceIds(referenceIds: EntityReferenceSet): void;
643
+ }
644
+ /** A digital representation of a *sheet of paper*. Modeled by a [[SheetModel]].
645
+ * @public
646
+ */
647
+ export declare class Sheet extends Document {
648
+ /** @internal */
649
+ static get className(): string;
650
+ height: number;
651
+ width: number;
652
+ scale?: number;
653
+ sheetTemplate?: Id64String;
654
+ /** @internal */
655
+ constructor(props: SheetProps, iModel: IModelDb);
656
+ protected collectReferenceIds(referenceIds: EntityReferenceSet): void;
657
+ /** Create a Code for a Sheet given a name that is meant to be unique within the scope of the specified DocumentListModel.
658
+ * @param iModel The IModelDb
659
+ * @param scopeModelId The Id of the DocumentListModel that contains the Sheet and provides the scope for its name.
660
+ * @param codeValue The Sheet name
661
+ */
662
+ static createCode(iModel: IModelDb, scopeModelId: CodeScopeProps, codeValue: string): Code;
663
+ }
664
+ /** Information Record Element is an abstract base class for modeling information records. Information Record
665
+ * Element is the default choice if no other subclass of Information Content Element makes sense.
666
+ * @public
667
+ */
668
+ export declare abstract class InformationRecordElement extends InformationContentElement {
669
+ /** @internal */
670
+ static get className(): string;
671
+ /** @internal */
672
+ constructor(props: ElementProps, iModel: IModelDb);
673
+ }
674
+ /** A Definition Element holds configuration-related information that is meant to be referenced / shared.
675
+ * @public
676
+ */
677
+ export declare abstract class DefinitionElement extends InformationContentElement {
678
+ /** @internal */
679
+ static get className(): string;
680
+ /** If true, don't show this DefinitionElement in user interface lists. */
681
+ isPrivate: boolean;
682
+ /** @internal */
683
+ constructor(props: DefinitionElementProps, iModel: IModelDb);
684
+ /** @internal */
685
+ toJSON(): DefinitionElementProps;
686
+ }
687
+ /** This abstract class unifies DefinitionGroup and DefinitionContainer for relationship endpoint purposes.
688
+ * @note The associated ECClass was added to the BisCore schema in version 1.0.10
689
+ * @public
690
+ */
691
+ export declare abstract class DefinitionSet extends DefinitionElement {
692
+ /** @internal */
693
+ static get className(): string;
694
+ }
695
+ /** A DefinitionContainer exclusively owns a set of DefinitionElements contained within its sub-model (of type DefinitionModel).
696
+ * @note The associated ECClass was added to the BisCore schema in version 1.0.10
697
+ * @public
698
+ */
699
+ export declare class DefinitionContainer extends DefinitionSet {
700
+ /** @internal */
701
+ static get className(): string;
702
+ /** Create a DefinitionContainer
703
+ * @param iModelDb The IModelDb
704
+ * @param definitionModelId The Id of the [DefinitionModel]($backend) that will contain this DefinitionContainer element.
705
+ * @param code The Code for this DefinitionContainer.
706
+ * @param isPrivate The optional hint, that if `true` means it should not be displayed in the UI.
707
+ * @returns The newly constructed DefinitionContainer
708
+ * @note There is not a predefined CodeSpec for DefinitionContainer elements, so it is the responsibility of the domain or application to create one.
709
+ * @throws [[IModelError]] if there is a problem creating the DefinitionContainer
710
+ */
711
+ static create(iModelDb: IModelDb, definitionModelId: Id64String, code: Code, isPrivate?: boolean): DefinitionContainer;
712
+ /** Insert a DefinitionContainer and its sub-model.
713
+ * @param iModelDb Insert into this IModelDb
714
+ * @param definitionModelId The Id of the [DefinitionModel]($backend) that will contain this DefinitionContainer element.
715
+ * @param code The Code for this DefinitionContainer.
716
+ * @param isPrivate The optional hint, that if `true` means it should not be displayed in the UI.
717
+ * @returns The Id of the newly inserted DefinitionContainer and its newly inserted sub-model (of type DefinitionModel).
718
+ * @note There is not a predefined CodeSpec for DefinitionContainer elements, so it is the responsibility of the domain or application to create one.
719
+ * @throws [[IModelError]] if there is a problem inserting the DefinitionContainer
720
+ */
721
+ static insert(iModelDb: IModelDb, definitionModelId: Id64String, code: Code, isPrivate?: boolean): Id64String;
722
+ }
723
+ /** A non-exclusive set of DefinitionElements grouped using the DefinitionGroupGroupsDefinitions relationship.
724
+ * @note The associated ECClass was added to the BisCore schema in version 1.0.10
725
+ * @public
726
+ */
727
+ export declare class DefinitionGroup extends DefinitionSet {
728
+ /** @internal */
729
+ static get className(): string;
730
+ /** Create a DefinitionGroup
731
+ * @param iModelDb The IModelDb
732
+ * @param definitionModelId The Id of the [DefinitionModel]($backend) that will contain this DefinitionGroup element.
733
+ * @param code The Code for this DefinitionGroup
734
+ * @param isPrivate The optional hint, that if `true` means it should not be displayed in the UI.
735
+ * @returns The newly constructed DefinitionGroup
736
+ * @note There is not a predefined CodeSpec for DefinitionGroup elements, so it is the responsibility of the domain or application to create one.
737
+ * @throws [[IModelError]] if there is a problem creating the DefinitionGroup
738
+ */
739
+ static create(iModelDb: IModelDb, definitionModelId: Id64String, code: Code, isPrivate?: boolean): DefinitionGroup;
740
+ }
741
+ /** Defines a set of properties (the *type*) that may be associated with an element.
742
+ * @public
743
+ */
744
+ export declare abstract class TypeDefinitionElement extends DefinitionElement {
745
+ /** @internal */
746
+ static get className(): string;
747
+ recipe?: RelatedElement;
748
+ /** @internal */
749
+ constructor(props: TypeDefinitionElementProps, iModel: IModelDb);
750
+ protected collectReferenceIds(referenceIds: EntityReferenceSet): void;
751
+ }
752
+ /** Defines a recipe for generating instances from a definition.
753
+ * @beta
754
+ */
755
+ export declare abstract class RecipeDefinitionElement extends DefinitionElement {
756
+ /** @internal */
757
+ static get className(): string;
758
+ /** @internal */
759
+ constructor(props: ElementProps, iModel: IModelDb);
760
+ }
761
+ /** Defines a set of properties (the *type*) that can be associated with a Physical Element. A Physical
762
+ * Type has a strong correlation with something that can be ordered from a catalog since all instances
763
+ * share a common set of properties.
764
+ * @public
765
+ */
766
+ export declare abstract class PhysicalType extends TypeDefinitionElement {
767
+ /** @internal */
768
+ static get className(): string;
769
+ /** If defined, the [[PhysicalMaterial]] that makes up this PhysicalType. */
770
+ physicalMaterial?: RelatedElement;
771
+ /** @internal */
772
+ constructor(props: PhysicalTypeProps, iModel: IModelDb);
773
+ /** @internal */
774
+ toJSON(): PhysicalTypeProps;
775
+ /** Create a Code for a PhysicalType element given a name that is meant to be unique within the scope of the specified DefinitionModel.
776
+ * @param iModel The IModelDb
777
+ * @param scopeModelId The Id of the DefinitionModel that contains the PhysicalType element and provides the scope for its name.
778
+ * @param codeValue The PhysicalType name
779
+ */
780
+ static createCode(iModel: IModelDb, scopeModelId: CodeScopeProps, codeValue: string): Code;
781
+ }
782
+ /** Defines a set of properties (the *type*) that can be associated with a spatial location.
783
+ * @public
784
+ */
785
+ export declare abstract class SpatialLocationType extends TypeDefinitionElement {
786
+ /** @internal */
787
+ static get className(): string;
788
+ /** @internal */
789
+ constructor(props: TypeDefinitionElementProps, iModel: IModelDb);
790
+ /** Create a Code for a SpatialLocationType element given a name that is meant to be unique within the scope of the specified DefinitionModel.
791
+ * @param iModel The IModelDb
792
+ * @param scopeModelId The Id of the DefinitionModel that contains the SpatialLocationType element and provides the scope for its name.
793
+ * @param codeValue The SpatialLocationType name
794
+ */
795
+ static createCode(iModel: IModelDb, scopeModelId: CodeScopeProps, codeValue: string): Code;
796
+ }
797
+ /** A TemplateRecipe3d is a DefinitionElement that has a sub-model that contains the 3d template elements.
798
+ * @beta
799
+ */
800
+ export declare class TemplateRecipe3d extends RecipeDefinitionElement {
801
+ /** @internal */
802
+ static get className(): string;
803
+ /** @internal */
804
+ constructor(props: ElementProps, iModel: IModelDb);
805
+ /** Create a Code for a TemplateRecipe3d given a name that is meant to be unique within the scope of its Model.
806
+ * @param iModelDb The IModelDb
807
+ * @param definitionModelId The Id of the [DefinitionModel]($backend) that contains this TemplateRecipe3d element.
808
+ * @param codeValue The name of the TemplateRecipe3d element.
809
+ */
810
+ static createCode(iModelDb: IModelDb, definitionModelId: CodeScopeProps, codeValue: string): Code;
811
+ /** Create a TemplateRecipe3d
812
+ * @param iModelDb The IModelDb
813
+ * @param definitionModelId The Id of the [DefinitionModel]($backend) that contains this TemplateRecipe3d element.
814
+ * @param name The name (Code.value) of the TemplateRecipe3d
815
+ * @returns The newly constructed TemplateRecipe3d
816
+ * @throws [[IModelError]] if there is a problem creating the TemplateRecipe3d
817
+ */
818
+ static create(iModelDb: IModelDb, definitionModelId: Id64String, name: string, isPrivate?: boolean): TemplateRecipe3d;
819
+ /** Insert a TemplateRecipe3d and a PhysicalModel (sub-model) that will contain the 3d template elements.
820
+ * @param iModelDb The IModelDb
821
+ * @param definitionModelId The Id of the [DefinitionModel]($backend) that contains this TemplateRecipe3d element.
822
+ * @param name The name (Code.value) of the TemplateRecipe3d
823
+ * @returns The Id of the newly inserted TemplateRecipe3d and the PhysicalModel that sub-models it.
824
+ * @throws [[IModelError]] if there is a problem inserting the TemplateRecipe3d or its sub-model.
825
+ */
826
+ static insert(iModelDb: IModelDb, definitionModelId: Id64String, name: string, isPrivate?: boolean): Id64String;
827
+ }
828
+ /** Defines a set of properties (the *type*) that can be associated with a 2D Graphical Element.
829
+ * @public
830
+ */
831
+ export declare abstract class GraphicalType2d extends TypeDefinitionElement {
832
+ /** @internal */
833
+ static get className(): string;
834
+ /** @internal */
835
+ constructor(props: TypeDefinitionElementProps, iModel: IModelDb);
836
+ /** Create a Code for a GraphicalType2d element given a name that is meant to be unique within the scope of the specified DefinitionModel.
837
+ * @param iModel The IModelDb
838
+ * @param scopeModelId The Id of the DefinitionModel that contains the GraphicalType2d element and provides the scope for its name.
839
+ * @param codeValue The GraphicalType2d name
840
+ */
841
+ static createCode(iModel: IModelDb, scopeModelId: CodeScopeProps, codeValue: string): Code;
842
+ }
843
+ /** A recipe that uses a 2D template for creating new instances.
844
+ * @beta
845
+ */
846
+ export declare class TemplateRecipe2d extends RecipeDefinitionElement {
847
+ /** @internal */
848
+ static get className(): string;
849
+ /** @internal */
850
+ constructor(props: ElementProps, iModel: IModelDb);
851
+ /** Create a Code for a TemplateRecipe2d given a name that is meant to be unique within the scope of its Model.
852
+ * @param iModelDb The IModelDb
853
+ * @param definitionModelId The Id of the [DefinitionModel]($backend) that contains this TemplateRecipe2d element.
854
+ * @param codeValue The name of the TemplateRecipe2d element.
855
+ */
856
+ static createCode(iModelDb: IModelDb, definitionModelId: CodeScopeProps, codeValue: string): Code;
857
+ /** Create a TemplateRecipe2d
858
+ * @param iModelDb The IModelDb
859
+ * @param definitionModelId The Id of the [DefinitionModel]($backend) that contains this TemplateRecipe2d element.
860
+ * @param name The name (Code.value) of the TemplateRecipe2d
861
+ * @returns The newly constructed TemplateRecipe2d
862
+ * @throws [[IModelError]] if there is a problem creating the TemplateRecipe2d
863
+ */
864
+ static create(iModelDb: IModelDb, definitionModelId: Id64String, name: string, isPrivate?: boolean): TemplateRecipe2d;
865
+ /** Insert a TemplateRecipe2d and a DrawingModel (sub-model) that will contain the 2d template elements.
866
+ * @param iModelDb The IModelDb
867
+ * @param definitionModelId The Id of the [DefinitionModel]($backend) that contains this TemplateRecipe2d element.
868
+ * @param name The name (Code.value) of the TemplateRecipe2d
869
+ * @returns The Id of the newly inserted TemplateRecipe2d and the PhysicalModel that sub-models it.
870
+ * @throws [[IModelError]] if there is a problem inserting the TemplateRecipe2d or its sub-model.
871
+ */
872
+ static insert(iModelDb: IModelDb, definitionModelId: Id64String, name: string, isPrivate?: boolean): Id64String;
873
+ }
874
+ /** An abstract base class for elements that establishes a particular modeling perspective for its parent Subject.
875
+ * Instances are always sub-modeled by a specialization of Model of the appropriate modeling perspective.
876
+ * @see [iModel Information Hierarchy]($docs/bis/guide/data-organization/top-of-the-world), [[Subject]], [[Model]]
877
+ * @public
878
+ */
879
+ export declare abstract class InformationPartitionElement extends InformationContentElement {
880
+ /** @internal */
881
+ static get className(): string;
882
+ /** A human-readable string describing the intent of the partition. */
883
+ description?: string;
884
+ /** @internal */
885
+ constructor(props: InformationPartitionElementProps, iModel: IModelDb);
886
+ /** @internal */
887
+ toJSON(): InformationPartitionElementProps;
888
+ /** Create a code that can be used for any subclass of InformationPartitionElement.
889
+ * @param iModelDb The IModelDb
890
+ * @param parentSubjectId The Id of the parent Subject that provides the scope for names of its child InformationPartitionElements.
891
+ * @param codeValue The InformationPartitionElement name
892
+ */
893
+ static createCode(iModel: IModelDb, parentSubjectId: CodeScopeProps, codeValue: string): Code;
894
+ }
895
+ /** A DefinitionPartition element establishes a *Definition* modeling perspective for its parent Subject.
896
+ * A DefinitionPartition is always sub-modeled by a DefinitionModel.
897
+ * @see [[DefinitionModel]]
898
+ * @public
899
+ */
900
+ export declare class DefinitionPartition extends InformationPartitionElement {
901
+ /** @internal */
902
+ static get className(): string;
903
+ }
904
+ /** A DocumentPartition element establishes a *Document* modeling perspective for its parent Subject.
905
+ * A DocumentPartition is always sub-modeled by a DocumentListModel.
906
+ * @see [[DocumentListModel]]
907
+ * @public
908
+ */
909
+ export declare class DocumentPartition extends InformationPartitionElement {
910
+ /** @internal */
911
+ static get className(): string;
912
+ }
913
+ /** A GroupInformationPartition element establishes a *Group Information* modeling perspective for its parent Subject.
914
+ * A GroupInformationPartition is always sub-modeled by a GroupInformationModel.
915
+ * @see [[GroupInformationModel]]
916
+ * @public
917
+ */
918
+ export declare class GroupInformationPartition extends InformationPartitionElement {
919
+ /** @internal */
920
+ static get className(): string;
921
+ }
922
+ /** A GraphicalPartition3d element establishes a *3D Graphical* modeling perspective for its parent Subject.
923
+ * A GraphicalPartition3d is always sub-modeled by a GraphicalModel3d.
924
+ * @note The associated ECClass was added to the BisCore schema in version 1.0.8
925
+ * @see [[GraphicalModel3d]]
926
+ * @public
927
+ */
928
+ export declare class GraphicalPartition3d extends InformationPartitionElement {
929
+ /** @internal */
930
+ static get className(): string;
931
+ }
932
+ /** An InformationRecordPartition element establishes a *Information Record* modeling perspective for its parent Subject.
933
+ * A InformationRecordPartition is always sub-modeled by an InformationRecordModel.
934
+ * @see [[InformationRecordModel]]
935
+ * @public
936
+ */
937
+ export declare class InformationRecordPartition extends InformationPartitionElement {
938
+ /** @internal */
939
+ static get className(): string;
940
+ }
941
+ /** A LinkPartition element establishes a *Link* modeling perspective for its parent Subject. A LinkPartition is always sub-modeled by a LinkModel.
942
+ * @see [[LinkModel]]
943
+ * @public
944
+ */
945
+ export declare class LinkPartition extends InformationPartitionElement {
946
+ /** @internal */
947
+ static get className(): string;
948
+ }
949
+ /** A PhysicalPartition element establishes a *Physical* modeling perspective for its parent Subject. A PhysicalPartition is always sub-modeled by a PhysicalModel.
950
+ * @see [[PhysicalModel]]
951
+ * @public
952
+ */
953
+ export declare class PhysicalPartition extends InformationPartitionElement {
954
+ /** @internal */
955
+ static get className(): string;
956
+ }
957
+ /** A SpatialLocationPartition element establishes a *SpatialLocation* modeling perspective for its parent Subject.
958
+ * A SpatialLocationPartition is always sub-modeled by a SpatialLocationModel.
959
+ * @see [[SpatialLocationModel]]
960
+ * @public
961
+ */
962
+ export declare class SpatialLocationPartition extends InformationPartitionElement {
963
+ /** @internal */
964
+ static get className(): string;
965
+ }
966
+ /** Group Information is an abstract base class for modeling entities whose main purpose is to reference a group of related elements.
967
+ * @public
968
+ */
969
+ export declare abstract class GroupInformationElement extends InformationReferenceElement {
970
+ /** @internal */
971
+ static get className(): string;
972
+ }
973
+ /** An information element that specifies a link.
974
+ * @public
975
+ */
976
+ export declare abstract class LinkElement extends InformationReferenceElement {
977
+ /** @internal */
978
+ static get className(): string;
979
+ /** Create a Code for a LinkElement given a name that is meant to be unique within the scope of the specified Model.
980
+ * @param iModel The IModelDb
981
+ * @param scopeModelId The Id of the Model that contains the LinkElement and provides the scope for its name.
982
+ * @param codeValue The LinkElement name
983
+ */
984
+ static createCode(iModel: IModelDb, scopeModelId: CodeScopeProps, codeValue: string): Code;
985
+ }
986
+ /** An information element that specifies a URL link.
987
+ * @public
988
+ */
989
+ export declare class UrlLink extends LinkElement {
990
+ /** @internal */
991
+ static get className(): string;
992
+ description?: string;
993
+ url?: string;
994
+ /** @internal */
995
+ constructor(props: UrlLinkProps, iModel: IModelDb);
996
+ /** @internal */
997
+ toJSON(): UrlLinkProps;
998
+ }
999
+ /** Represents a folder-like structure that organizes repositories (typically files) in an external system.
1000
+ * @note The associated ECClass was added to the BisCore schema in version 1.0.13
1001
+ * @alpha
1002
+ */
1003
+ export declare class FolderLink extends UrlLink {
1004
+ /** @internal */
1005
+ static get className(): string;
1006
+ }
1007
+ /** An information element that links to a repository.
1008
+ * @public
1009
+ */
1010
+ export declare class RepositoryLink extends UrlLink {
1011
+ /** @internal */
1012
+ static get className(): string;
1013
+ repositoryGuid?: GuidString;
1014
+ /** @note This property was added to the BisCore schema in version 1.0.13 */
1015
+ format?: string;
1016
+ /** @internal */
1017
+ constructor(props: RepositoryLinkProps, iModel: IModelDb);
1018
+ /** @internal */
1019
+ toJSON(): RepositoryLinkProps;
1020
+ }
1021
+ /** An information element that links to an embedded file.
1022
+ * @public
1023
+ */
1024
+ export declare class EmbeddedFileLink extends LinkElement {
1025
+ /** @internal */
1026
+ static get className(): string;
1027
+ }
1028
+ /** A real world entity is modeled as a Role Element when a set of external circumstances define an important
1029
+ * role (one that is worth tracking) that is not intrinsic to the entity playing the role. For example,
1030
+ * a person can play the role of a teacher or a rock can play the role of a boundary marker.
1031
+ * @public
1032
+ */
1033
+ export declare abstract class RoleElement extends Element {
1034
+ /** @internal */
1035
+ static get className(): string;
1036
+ }
1037
+ /** A Definition Element that specifies a collection of geometry that is meant to be reused across Geometric
1038
+ * Element instances. Leveraging Geometry Parts can help reduce file size and improve display performance.
1039
+ * @public
1040
+ */
1041
+ export declare class GeometryPart extends DefinitionElement {
1042
+ /** @internal */
1043
+ static get className(): string;
1044
+ geom?: GeometryStreamProps;
1045
+ /** How to build the part's GeometryStream. This is used for insert and update only. It is not a persistent property. It will be undefined in the properties returned by functions that read a persistent element. It may be specified as an alternative to `geom` when inserting or updating an element.
1046
+ * @alpha
1047
+ */
1048
+ elementGeometryBuilderParams?: ElementGeometryBuilderParamsForPart;
1049
+ bbox: ElementAlignedBox3d;
1050
+ /** @internal */
1051
+ constructor(props: GeometryPartProps, iModel: IModelDb);
1052
+ /** @internal */
1053
+ toJSON(): GeometryPartProps;
1054
+ /** Create a Code for a GeometryPart element given a name that is meant to be unique within the scope of the specified DefinitionModel.
1055
+ * @param iModel The IModelDb
1056
+ * @param scopeModelId The Id of the DefinitionModel that contains the GeometryPart element and provides the scope for its name.
1057
+ * @param codeValue The GeometryPart name
1058
+ * @note GeometryPart elements are not required to be named (have a non-empty Code).
1059
+ */
1060
+ static createCode(iModel: IModelDb, scopeModelId: CodeScopeProps, codeValue: string): Code;
1061
+ }
1062
+ /** The definition element for a line style
1063
+ * @public
1064
+ */
1065
+ export declare class LineStyle extends DefinitionElement {
1066
+ /** @internal */
1067
+ static get className(): string;
1068
+ description?: string;
1069
+ data: string;
1070
+ /** @internal */
1071
+ constructor(props: LineStyleProps, iModel: IModelDb);
1072
+ /** Create a Code for a LineStyle definition given a name that is meant to be unique within the scope of the specified model.
1073
+ * @param iModel The IModel
1074
+ * @param scopeModelId The Id of the DefinitionModel that contains the LineStyle and provides the scope for its name.
1075
+ * @param codeValue The name of the LineStyle
1076
+ * @returns A LineStyle Code
1077
+ */
1078
+ static createCode(iModel: IModelDb, scopeModelId: CodeScopeProps, codeValue: string): Code;
1079
+ }
1080
+ /** Describes how to animate a view of a [[GeometricModel]] to show change over time using a [RenderSchedule.Script]($common).
1081
+ * @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.
1082
+ * @public
1083
+ */
1084
+ export declare class RenderTimeline extends InformationRecordElement {
1085
+ /** @internal */
1086
+ static get className(): string;
1087
+ /** A human-readable description of the timeline, which may be an empty string. */
1088
+ description: string;
1089
+ /** The JSON representation of the instructions for visualizing change over time.
1090
+ * @see [RenderSchedule.Script]($common) for the API for working with the script.
1091
+ */
1092
+ scriptProps: RenderSchedule.ScriptProps;
1093
+ /** @internal */
1094
+ protected constructor(props: RenderTimelineProps, iModel: IModelDb);
1095
+ static fromJSON(props: RenderTimelineProps, iModel: IModelDb): RenderTimeline;
1096
+ toJSON(): RenderTimelineProps;
1097
+ private static parseScriptProps;
1098
+ protected collectReferenceIds(ids: EntityReferenceSet): void;
1099
+ /** @alpha */
1100
+ protected static onCloned(context: IModelElementCloneContext, sourceProps: RenderTimelineProps, targetProps: RenderTimelineProps): void;
1101
+ /** Remap Ids when cloning a RenderSchedule.Script between iModels on a DisplayStyle or RenderTimeline.
1102
+ * @internal
1103
+ */
1104
+ static remapScript(context: IModelElementCloneContext, input: RenderSchedule.ScriptProps): RenderSchedule.ScriptProps;
1105
+ }
1110
1106
  //# sourceMappingURL=Element.d.ts.map