如何修改Autodesk Forge的CustomPropertyExtension删除模型自带属性?
自定义属性扩展修改方案
修改逻辑
现有代码中Autodesk.Viewing.Extensions.ViewerPropertyPanel.prototype.setAggregatedProperties.call(this, propertySet)这行调用会加载模型自带的全部属性,只需在该调用后、自定义属性添加前插入清空自带属性的逻辑即可。
修改后完整代码
setAggregatedProperties(propertySet) { Autodesk.Viewing.Extensions.ViewerPropertyPanel.prototype.setAggregatedProperties.call(this, propertySet); // 新增清空模型自带属性逻辑 this.properties = {}; this.removeAllProperties(); // 原有自定义属性添加逻辑 const dbids = propertySet.getDbIds(); dbids.forEach(id => { var propsForObject = this.properties[id.toString()]; if (propsForObject) { for (const groupName in propsForObject) { const group = propsForObject[groupName]; for (const propName in group) { const prop = group[propName]; console.log("check0 propName, prop, groupName",propName, prop, groupName) this.addProperty(propName, prop, groupName); } } } }); } };
补充说明
如果你不需要父类方法的初始化逻辑,也可以直接删除父类调用的那行代码,同样可以达到不加载自带属性的效果,调用后清空的方案兼容性更强,可避免属性面板出现初始化异常。
内容的提问来源于stack exchange,提问作者Johan W
相关产品推荐
相关产品推荐

