@itwin/imodel-transformer 2.0.0-dev.58 → 2.0.0-dev.59
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/IModelExporter.d.ts +13 -1
- package/lib/cjs/IModelExporter.d.ts.map +1 -1
- package/lib/cjs/IModelExporter.js +53 -11
- package/lib/cjs/IModelExporter.js.map +1 -1
- package/lib/cjs/IModelTransformer.d.ts +10 -0
- package/lib/cjs/IModelTransformer.d.ts.map +1 -1
- package/lib/cjs/IModelTransformer.js +79 -31
- package/lib/cjs/IModelTransformer.js.map +1 -1
- package/package.json +1 -1
|
@@ -403,6 +403,16 @@ export declare class IModelTransformer extends IModelExportHandler {
|
|
|
403
403
|
* @internal do not call, override or implement this, it will be removed
|
|
404
404
|
*/
|
|
405
405
|
preExportElement(sourceElement: Element): Promise<void>;
|
|
406
|
+
/** Makes sure an element that a changed element requires is mapped in the target before the changed element is imported.
|
|
407
|
+
* A changed required element is exported. An unchanged one is only looked up in the target: change processing does not insert it, and exporting it would visit its children, which can include the element that requires it.
|
|
408
|
+
* @throws [[IModelTransformerError.DependencyMappingMissing]] if the required element is still not mapped.
|
|
409
|
+
*/
|
|
410
|
+
private resolveRequiredElement;
|
|
411
|
+
/** Finds the existing target element for a source element by FederationGuid, then by Code, and records the mapping.
|
|
412
|
+
* @note Updates `targetElementProps.code` as the Code lookup requires.
|
|
413
|
+
* @returns the target element's id, or `Id64.invalid` if none is found.
|
|
414
|
+
*/
|
|
415
|
+
private findExistingTargetElement;
|
|
406
416
|
private getElemTransformState;
|
|
407
417
|
private queryElementIdByCode;
|
|
408
418
|
/** Override of [IModelExportHandler.onExportElement]($transformer) that imports an element into the target iModel when it is exported from the source iModel.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IModelTransformer.d.ts","sourceRoot":"","sources":["../../src/IModelTransformer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"IModelTransformer.d.ts","sourceRoot":"","sources":["../../src/IModelTransformer.ts"],"names":[],"mappings":"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"}
|
|
@@ -710,14 +710,88 @@ class IModelTransformer extends IModelExporter_1.IModelExportHandler {
|
|
|
710
710
|
if (unresolvedReferences.length > 0) {
|
|
711
711
|
for (const reference of unresolvedReferences) {
|
|
712
712
|
const processState = await this.getElemTransformState(reference);
|
|
713
|
-
// must export element first
|
|
714
713
|
if (processState.needsElemImport)
|
|
715
|
-
await this.
|
|
714
|
+
await this.resolveRequiredElement(sourceElement.id, reference);
|
|
716
715
|
if (processState.needsModelImport)
|
|
717
716
|
await this.exporter.exportModel(reference);
|
|
718
717
|
}
|
|
719
718
|
}
|
|
720
719
|
}
|
|
720
|
+
/** Makes sure an element that a changed element requires is mapped in the target before the changed element is imported.
|
|
721
|
+
* A changed required element is exported. An unchanged one is only looked up in the target: change processing does not insert it, and exporting it would visit its children, which can include the element that requires it.
|
|
722
|
+
* @throws [[IModelTransformerError.DependencyMappingMissing]] if the required element is still not mapped.
|
|
723
|
+
*/
|
|
724
|
+
async resolveRequiredElement(elementId, referenceId) {
|
|
725
|
+
const changes = this.exporter.sourceDbChanges;
|
|
726
|
+
const referenceChanged = changes === undefined ||
|
|
727
|
+
changes.element.insertIds.has(referenceId) ||
|
|
728
|
+
changes.element.updateIds.has(referenceId);
|
|
729
|
+
let accepted = true;
|
|
730
|
+
if (referenceChanged) {
|
|
731
|
+
await this.exporter.exportElement(referenceId);
|
|
732
|
+
}
|
|
733
|
+
else {
|
|
734
|
+
const reference = this.sourceDb.elements.getElement({
|
|
735
|
+
id: referenceId,
|
|
736
|
+
wantGeometry: this.exporter.wantGeometry,
|
|
737
|
+
wantBRepData: this.exporter.wantGeometry,
|
|
738
|
+
});
|
|
739
|
+
// A required parent reached by the traversal has already been filtered.
|
|
740
|
+
accepted =
|
|
741
|
+
this.exporter.getUnchangedAncestorFilterResult(referenceId) ??
|
|
742
|
+
(await this.exporter.shouldExportElement(reference));
|
|
743
|
+
if (accepted)
|
|
744
|
+
await this.findExistingTargetElement(reference, await this.onTransformElement(reference));
|
|
745
|
+
}
|
|
746
|
+
if (core_bentley_1.Id64.isValid(this.context.findTargetElementId(referenceId)))
|
|
747
|
+
return;
|
|
748
|
+
let message;
|
|
749
|
+
if (referenceChanged)
|
|
750
|
+
message = `Element ${elementId} requires element ${referenceId}, which was not exported because the export filter rejects it or one of its ancestors. Accept element ${referenceId} and its ancestors, or reject element ${elementId}.`;
|
|
751
|
+
else if (accepted)
|
|
752
|
+
message = `Element ${elementId} requires unchanged element ${referenceId}, which is not in the target iModel. Change processing does not insert unchanged elements; to insert element ${referenceId}, add it in addCustomChanges.`;
|
|
753
|
+
else
|
|
754
|
+
message = `Element ${elementId} requires element ${referenceId}, which the export filter rejects. Accept element ${referenceId}, or reject element ${elementId} and every element that requires it.`;
|
|
755
|
+
core_bentley_1.ITwinError.throwError({
|
|
756
|
+
iTwinErrorId: {
|
|
757
|
+
scope: IModelTransformerError_1.IModelTransformerErrorScope,
|
|
758
|
+
key: IModelTransformerError_1.IModelTransformerError.DependencyMappingMissing,
|
|
759
|
+
},
|
|
760
|
+
message,
|
|
761
|
+
});
|
|
762
|
+
}
|
|
763
|
+
/** Finds the existing target element for a source element by FederationGuid, then by Code, and records the mapping.
|
|
764
|
+
* @note Updates `targetElementProps.code` as the Code lookup requires.
|
|
765
|
+
* @returns the target element's id, or `Id64.invalid` if none is found.
|
|
766
|
+
*/
|
|
767
|
+
async findExistingTargetElement(sourceElement, targetElementProps) {
|
|
768
|
+
if (this.context.isBetweenIModels &&
|
|
769
|
+
sourceElement.federationGuid !== undefined) {
|
|
770
|
+
const targetElementId = this.targetDb.elements.getIdFromFederationGuid(sourceElement.federationGuid);
|
|
771
|
+
if (targetElementId !== undefined && core_bentley_1.Id64.isValid(targetElementId)) {
|
|
772
|
+
this.context.remapElement(sourceElement.id, targetElementId); // record that the targetElement was found
|
|
773
|
+
return targetElementId;
|
|
774
|
+
}
|
|
775
|
+
}
|
|
776
|
+
// check by Code as long as the CodeScope is valid (invalid means a missing reference so not worth checking)
|
|
777
|
+
if (!core_bentley_1.Id64.isValidId64(targetElementProps.code.scope))
|
|
778
|
+
return core_bentley_1.Id64.invalid;
|
|
779
|
+
// respond the same way to undefined code value as the @see Code class, but don't use that class because it trims
|
|
780
|
+
// whitespace from the value, and there are iModels out there with untrimmed whitespace that we ought not to trim
|
|
781
|
+
targetElementProps.code.value = targetElementProps.code.value ?? "";
|
|
782
|
+
const maybeTargetElementId = await this.queryElementIdByCode(this.targetDb, targetElementProps.code);
|
|
783
|
+
if (maybeTargetElementId === undefined)
|
|
784
|
+
return core_bentley_1.Id64.invalid;
|
|
785
|
+
const maybeTargetElem = this.targetDb.elements.getElement(maybeTargetElementId);
|
|
786
|
+
if (maybeTargetElem.classFullName !== targetElementProps.classFullName) {
|
|
787
|
+
targetElementProps.code = core_common_1.Code.createEmpty(); // clear out invalid code
|
|
788
|
+
return core_bentley_1.Id64.invalid;
|
|
789
|
+
}
|
|
790
|
+
// ensure code remapping doesn't change the target class
|
|
791
|
+
this.context.remapElement(sourceElement.id, maybeTargetElementId); // record that the targetElement was found by Code
|
|
792
|
+
this._targetElementIdsRemappedByCode.add(maybeTargetElementId);
|
|
793
|
+
return maybeTargetElementId;
|
|
794
|
+
}
|
|
721
795
|
async getElemTransformState(elementId) {
|
|
722
796
|
const dbHasModel = async (db, id) => {
|
|
723
797
|
const maybeModelId = core_backend_1.EntityReferences.fromEntityType(id, core_common_1.ConcreteEntityTypes.Model);
|
|
@@ -777,35 +851,9 @@ class IModelTransformer extends IModelExporter_1.IModelExportHandler {
|
|
|
777
851
|
targetElementId = this.context.findTargetElementId(sourceElement.id);
|
|
778
852
|
targetElementProps = await this.onTransformElement(sourceElement);
|
|
779
853
|
}
|
|
780
|
-
// if an existing remapping was not yet found, check by FederationGuid
|
|
781
|
-
if (
|
|
782
|
-
|
|
783
|
-
sourceElement.federationGuid !== undefined) {
|
|
784
|
-
targetElementId =
|
|
785
|
-
this.targetDb.elements.getIdFromFederationGuid(sourceElement.federationGuid) ?? core_bentley_1.Id64.invalid;
|
|
786
|
-
if (core_bentley_1.Id64.isValid(targetElementId))
|
|
787
|
-
this.context.remapElement(sourceElement.id, targetElementId); // record that the targetElement was found
|
|
788
|
-
}
|
|
789
|
-
// if an existing remapping was not yet found, check by Code as long as the CodeScope is valid (invalid means a missing reference so not worth checking)
|
|
790
|
-
if (!core_bentley_1.Id64.isValidId64(targetElementId) &&
|
|
791
|
-
core_bentley_1.Id64.isValidId64(targetElementProps.code.scope)) {
|
|
792
|
-
// respond the same way to undefined code value as the @see Code class, but don't use that class because it trims
|
|
793
|
-
// whitespace from the value, and there are iModels out there with untrimmed whitespace that we ought not to trim
|
|
794
|
-
targetElementProps.code.value = targetElementProps.code.value ?? "";
|
|
795
|
-
const maybeTargetElementId = await this.queryElementIdByCode(this.targetDb, targetElementProps.code);
|
|
796
|
-
if (undefined !== maybeTargetElementId) {
|
|
797
|
-
const maybeTargetElem = this.targetDb.elements.getElement(maybeTargetElementId);
|
|
798
|
-
if (maybeTargetElem.classFullName === targetElementProps.classFullName) {
|
|
799
|
-
// ensure code remapping doesn't change the target class
|
|
800
|
-
targetElementId = maybeTargetElementId;
|
|
801
|
-
this.context.remapElement(sourceElement.id, targetElementId); // record that the targetElement was found by Code
|
|
802
|
-
this._targetElementIdsRemappedByCode.add(targetElementId);
|
|
803
|
-
}
|
|
804
|
-
else {
|
|
805
|
-
targetElementProps.code = core_common_1.Code.createEmpty(); // clear out invalid code
|
|
806
|
-
}
|
|
807
|
-
}
|
|
808
|
-
}
|
|
854
|
+
// if an existing remapping was not yet found, check by FederationGuid and then by Code
|
|
855
|
+
if (!core_bentley_1.Id64.isValid(targetElementId))
|
|
856
|
+
targetElementId = await this.findExistingTargetElement(sourceElement, targetElementProps);
|
|
809
857
|
if (!this.hasElementChanged(sourceElement)) {
|
|
810
858
|
core_bentley_1.Logger.logTrace(loggerCategory, `Skipping unchanged element (${sourceElement.id}, ${sourceElement.getDisplayLabel()}).`);
|
|
811
859
|
return;
|