我使用Forge-Viewer创建了一个网站,该网站实现了在一个窗口中加载多个模型,如本文https://forge.autodesk.com/blog/aggregate-multi-models-sequence-forge-viewer所示。我需要选择两个几乎完全相同的文件,它们之间的区别仅在于一个元素的属性不同,然后用红色覆盖这些差异。如何将两个相同的上传文件之间的差异涂成红色?
这是一个新站点。我已经尝试了Internet上可用的所有方法和建议,但没有一个能帮助我解决问题。
我的代码与该来源的代码完全一致 https://github.com/Autodesk-Forge/learn.forge.viewmodels/tree/nodejs https://forge.autodesk.com/blog/aggregate-multi-models-sequence-forge-viewer
我希望我最终可以将差异涂成红色,但到目前为止我失败了。
答案 0 :(得分:1)
一种可能的方法是通过查询viewer.model.getBulkProperties
(dev doc here)或viewer.search
(dev doc here)接口(取决于哪个效果更好)来比较属性(根据您的特定用例)并制作外部ID:
let model = viewer.impl.modelQueue().findModel(modelId) || viewer.impl.modelQueue().getModels()[modelSequence] //Set the model to query against
model.getBulkProperties(dbid,['propname1','propnam2'],rst=>{...},err=>{...}) //Retrieve the properties with filtering conditions and compare them
model.search('keywords',dbids=>{...}, err=>{...}) //Query dbids with properties matching keywords
然后将dbids
与差异并用主题色突出显示(dev doc here):
viewer.setThemingColor(dbid, THREE.Vector4, model)