IModelTransformer Class @beta
Base class used to transform a source iModel into a different target iModel.
@see iModel Transformation and Data Exchange, IModelExporter, IModelImporter
Extends
Extended by
Methods
| Name | Description | |
|---|---|---|
| constructor(source: IModelDb | IModelExporter, target: IModelDb | IModelImporter, options?: IModelTransformOptions): IModelTransformer | Construct a new IModelTransformer | |
| addCustomChanges(_sourceDbChanges: ChangedInstanceIds): Promise<void> Protected | This will be called when transformer is called with argsForProcessChanges to process changes. | |
| combineElements(sourceElementIds: Id64Array, targetElementId: string): void | Combine an array of source elements into a single target element. | |
| completePartiallyCommittedAspects(): void Protected | ||
| completePartiallyCommittedElements(): void Protected | ||
| detectElementDeletes(): Promise<void> | Detect Element deletes using ExternalSourceAspects in the target iModel and a brute force comparison against Elements | Deprecated | 
| detectRelationshipDeletes(): Promise<void> | Detect Relationship deletes using ExternalSourceAspects in the target iModel and a brute force comparison against relationships in the source iModel. | Deprecated | 
| dispose(): void | Dispose any native resources associated with this IModelTransformer. | |
| hasElementChanged(sourceElement: Element): boolean Protected | Returns true if a change within sourceElement is detected. | |
| initElementProvenance(sourceElementId: string, targetElementId: string): ExternalSourceAspectProps | Create an ExternalSourceAspectProps in a standard way for an Element in an iModel --> iModel transformation. | |
| initialize(): Promise<void> | Initialize prerequisites of processing, you must initialize with an InitOptions if you | |
| initScopeProvenance(): void Protected | Make sure there are no conflicting other scope-type external source aspects on the target scope element, | |
| onDeleteElement(sourceElementId: string): void | Override of IModelExportHandler.onDeleteElement that is called when IModelExporter detects that an Element has been deleted from the source iModel. | |
| onDeleteModel(sourceModelId: string): void | Override of IModelExportHandler.onDeleteModel that is called when IModelExporter detects that a Model has been deleted from the source iModel. | |
| onDeleteRelationship(sourceRelInstanceId: string): void | Override of IModelExportHandler.onDeleteRelationship that is called when IModelExporter detects that a Relationship has been deleted from the source iModel. | |
| onExportCodeSpec(sourceCodeSpec: CodeSpec): void | Override of IModelExportHandler.onExportCodeSpec that imports a CodeSpec into the target iModel when it is exported from the source iModel. | |
| onExportElement(sourceElement: Element): void | Override of IModelExportHandler.onExportElement that imports an element into the target iModel when it is exported from the source iModel. | |
| onExportElementMultiAspects(sourceAspects: ElementMultiAspect[]): void | Override of IModelExportHandler.onExportElementMultiAspects that imports ElementMultiAspects into the target iModel when they are exported from the source iModel. | |
| onExportElementUniqueAspect(sourceAspect: ElementUniqueAspect): void | Override of IModelExportHandler.onExportElementUniqueAspect that imports an ElementUniqueAspect into the target iModel when it is exported from the source iModel. | |
| onExportFont(font: FontProps, _isUpdate: boolean): void | Override of IModelExportHandler.onExportFont that imports a font into the target iModel when it is exported from the source iModel. | |
| onExportModel(sourceModel: Model): void | Override of IModelExportHandler.onExportModel that is called when a Model should be exported from the source iModel. | |
| onExportRelationship(sourceRelationship: Relationship): void | Override of IModelExportHandler.onExportRelationship that imports a relationship into the target iModel when it is exported from the source iModel. | |
| onExportSchema(schema: Schema): Promise<void | ExportSchemaResult> | Override of IModelExportHandler.onExportSchema that serializes a schema to disk for processSchemas to import into | |
| onTransformElement(sourceElement: Element): ElementProps | Transform the specified sourceElement into ElementProps for the target iModel. | |
| onTransformElementAspect(sourceElementAspect: ElementAspect): ElementAspectProps Protected | Transform the specified sourceElementAspect into ElementAspectProps for the target iModel. | |
| onTransformModel(sourceModel: Model, targetModeledElementId: string): ModelProps | Transform the specified sourceModel into ModelProps for the target iModel. | |
| onTransformRelationship(sourceRelationship: Relationship): RelationshipProps Protected | Transform the specified sourceRelationship into RelationshipProps for the target iModel. | |
| process(): Promise<void> | The behavior of process is influenced by argsForProcessChanges being defined or not defined during construction passed of the IModelTransformer. | |
| processChildElements(sourceElementId: string): Promise<void> | Import child elements into the target IModelDb | |
| processCodeSpec(codeSpecName: string): Promise<void> | Cause a single CodeSpec to be exported from the source iModel and imported into the target iModel. | |
| processCodeSpecs(): Promise<void> | Cause all CodeSpecs to be exported from the source iModel and imported into the target iModel. | |
| processElement(sourceElementId: string): Promise<void> | Cause the specified Element and its child Elements (if applicable) to be exported from the source iModel and imported into the target iModel. | |
| processFonts(): Promise<void> | Cause all fonts to be exported from the source iModel and imported into the target iModel. | |
| processModel(sourceModeledElementId: string): Promise<void> | Cause the model container, contents, and sub-models to be exported from the source iModel and imported into the target iModel. | |
| processModelContents(sourceModelId: string, targetModelId: string, elementClassFullName: stringElement.classFullName): Promise<void> | Cause the model contents to be exported from the source iModel and imported into the target iModel. | |
| processRelationships(baseRelClassFullName: string): Promise<void> | Imports all relationships that subclass from the specified base class. | |
| processSchemas(): Promise<void> | Cause all schemas to be exported from the source iModel and imported into the target iModel. | |
| processSubject(sourceSubjectId: string, targetSubjectId: string): Promise<void> | Recursively import all Elements and sub-Models that descend from the specified Subject | |
| shouldDetectDeletes(): boolean Protected | Returns trueif brute force delete detections should be run. | |
| shouldExportCodeSpec(_sourceCodeSpec: CodeSpec): boolean | Override of IModelExportHandler.shouldExportCodeSpec that is called to determine if a CodeSpec should be exported from the source iModel. | |
| shouldExportElement(_sourceElement: Element): boolean | Override of IModelExportHandler.shouldExportElement that is called to determine if an element should be exported from the source iModel. | |
| shouldExportElementAspect(aspect: ElementAspect): boolean | If trueis returned, then the ElementAspect will be exported. | |
| shouldExportRelationship(_sourceRelationship: Relationship): boolean | Override of IModelExportHandler.shouldExportRelationship that is called to determine if a Relationship should be exported. | |
| shouldExportSchema(schemaKey: SchemaKey): boolean | Override of IModelExportHandler.shouldExportSchema that is called to determine if a schema should be exported | |
| tryGetProvenanceScopeAspect(): undefined | ExternalSourceAspect Protected | ||
| updateSynchronizationVersion(__namedParameters: { initializeReverseSyncVersion: undefined | boolean }{}): void | Called at the end of a transformation, | |
| determineSyncType(sourceDb: IModelDb, targetDb: IModelDb, targetScopeElementId: string): "reverse" | "forward" Static | Determines the sync direction "forward" or "reverse" of a given sourceDb and targetDb by looking for the scoping ESA. | |
| forEachTrackedElement(args: { fn: (sourceElementId: string, targetElementId: string) => void, isReverseSynchronization: boolean, provenanceDb: IModelDb, provenanceSourceDb: IModelDb, skipPropagateChangesToRootElements: boolean, targetScopeElementId: string }): void Static | Iterate all matching federation guids and ExternalSourceAspects in the provenance iModel (target unless reverse sync) | |
| initElementProvenanceOptions(sourceElementId: string, targetElementId: string, args: { isReverseSynchronization: boolean, sourceDb: IModelDb, targetDb: IModelDb, targetScopeElementId: string }): ExternalSourceAspectProps Static | Create an ExternalSourceAspectProps in a standard way for an Element in an iModel --> iModel transformation. | |
| initRelationshipProvenanceOptions(sourceRelInstanceId: string, targetRelInstanceId: string, args: { forceOldRelationshipProvenanceMethod: boolean, isReverseSynchronization: boolean, sourceDb: IModelDb, targetDb: IModelDb, targetScopeElementId: string }): ExternalSourceAspectProps Static | ||
| queryScopeExternalSourceAspect(dbToQuery: IModelDb, aspectProps: ExternalSourceAspectProps): undefined | { aspectId: string, jsonProperties?: string, version?: string } Static | Queries for an esa which matches the props in the provided aspectProps. | 
Inherited methods
| Name | Inherited from | Description | 
|---|---|---|
| onProgress(): Promise<void> Inherited | IModelExportHandler | This method is called when IModelExporter has made incremental progress based on the progressInterval setting. | 
| onSkipElement(_elementId: string): void Inherited | IModelExportHandler | Called when element is skipped instead of exported. | 
Properties
| Name | Type | Description | |
|---|---|---|---|
| _elementsWithExplicitlyTrackedProvenance Protected | Set<string> | a set of elements for which source provenance will be explicitly tracked by ExternalSourceAspects | |
| _partiallyCommittedAspectIds Protected | Id64Set | ||
| _partiallyCommittedElementIds Protected | Id64Set | ||
| _schemaExportDir Protected | string | The directory where schemas will be exported, a random temporary directory | |
| context Readonly | IModelCloneContext | The IModelTransformContext for this IModelTransformer. | |
| exporter Readonly | IModelExporter | The IModelExporter that will export from the source iModel. | |
| hasDefinitionContainerDeletionFeature Accessor Protected ReadOnly | boolean | As of itwinjs 4.6.0, definitionContainers are now deleted as if they were DefinitionPartitions as opposed to Definitions. | |
| importer Readonly | IModelImporter | The IModelImporter that will import into the target iModel. | |
| isForwardSynchronization Accessor ReadOnly | boolean | ||
| isReverseSynchronization Accessor ReadOnly | boolean | ||
| string | |||
| provenanceDb Accessor ReadOnly | IModelDb | Return the IModelDb where IModelTransformer will store its provenance. | |
| provenanceElementAspectClasses Accessor Static ReadOnly | [] | The element aspect classes that are considered to define provenance in the iModel | |
| provenanceElementClasses Accessor Static ReadOnly | [] | The element classes that are considered to define provenance in the iModel | |
| provenanceSourceDb Accessor ReadOnly | IModelDb | Return the IModelDb where IModelTransformer looks for entities referred to by stored provenance. | |
| sourceDb Readonly | IModelDb | The normally read-only source iModel. | |
| synchronizationVersion Accessor Protected ReadOnly | ChangesetIndexAndId | the changeset in the scoping element's source version found for this transformation | |
| targetDb Readonly | IModelDb | The read/write target iModel. | |
| targetScopeElementId Accessor ReadOnly | string | The Id of the Element in the target iModel that represents the source repository as a whole and scopes its ExternalSourceAspect instances. | 
Defined in
Last Updated: 10 June, 2025
Found something wrong, missing, or unclear on this page? Raise an issue in our repo.