请救救我。我试图将两个模型合并到一个输出bim文件中。
source1 = test1.bim,源2= test2.bim输出= output.bim
当我使用快照打开output.bim文件时,test1和test2应该都有,这意味着它应该有test1和test2的两个元素。
我看了看https://github.com/imodeljs/imodeljs/issues/87。然而,它只写着“使用IModelTransformer”。
我还查看了https://www.itwinjs.org/learning/backend/imodeltransformation/
https://github.com/imodeljs/imodeljs/tree/master/test-apps/imodel-transformer
文件,但还没找到。
有人能给我一个示例代码吗?
发布于 2021-07-13 23:51:49
在转换器测试中,有一个示例显示从磁盘加载并合并的一些快照iModels:https://github.com/imodeljs/imodeljs/blob/master/core/backend/src/test/standalone/IModelTransformer.test.ts
这一过程如下:
targetScopeElementId .简单地说,它应该类似于:
const mergedDb = SnapshotDb.createEmpty("/tmp/merged.bim", { rootSubject: { name: "Merge Test" } });
// prepare some subjects to merge onto
const model1SubjectId = Subject.insert(mergedDb, IModel.rootSubjectId, "Model1Subject");
const model2SubjectId = Subject.insert(mergedDb, IModel.rootSubjectId, "Model2Subject");
// merge first source model
const sourceModel1 = SnapshotDb.openFile("/tmp/sourceModel1.bim");
const transformer1 = new IModelTransformer(sourceModel1, mergedDb, { targetScopeElementId: model1SubjectId });
transformer1.context.remapElement(IModel.rootSubjectId, source1SubjectId);
await transformer1.processAll(); // export everything from sourceModel1 and import into merged
// merge second source model
const sourceModel2 = SnapshotDb.openFile("/tmp/sourceModel2.bim");
const transformer2 = new IModelTransformer(sourceModel2, mergedDb, { targetScopeElementId: model2SubjectId });
transformer2.context.remapElement(IModel.rootSubjectId, source2SubjectId);
await transformer2.processAll(); // export everything from sourceModel2 and import into merged
sourceModel1.close();
sourceModel2.close();
mergedDb.saveChanges();还请确保使用processSchemas导入任何模式,链接测试有一个显式示例。
https://stackoverflow.com/questions/68356106
复制相似问题