微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 userFunction 中使用 getBulkProperties2 来提高性能

如何解决在 userFunction 中使用 getBulkProperties2 来提高性能

我目前正在通过 getBulkProperties2 查询属性数据库。我通过在数据库上运行 userFunctionexecuteUserFunctionbruteForceFind 获得此查询的 ID。

在我们公司的一些速度较慢的笔记本电脑上,getBulkProperties2 调用大约需要 40-50 秒。由于单线程 JS 的特性,整个 Vue 应用程序和 UI 都冻结了。我曾尝试将批量调用移至 WebWorker,但您无法将模型传递给 WebWorker,因为模型对象引用自身,因此无法序列化(循环引用)。

理想的解决方案是在 userFunction 内执行批量调用,因为它按照设计是在 WebWorker 上执行的。我在文档(或我反编译的源代码)中没有看到可以执行此类操作的方法

userFunction 中执行批量调用的推荐方法是什么?

解决方法

您可以在 pdb.getObjectProperties 内调用 userFunction。见https://forge.autodesk.com/en/docs/viewer/v7/reference/globals/PropertyDatabase/#getobjectproperties-dbid-propfilter-ignorehidden-propignored

const ignoreHidden = false;
pdb.getObjectProperties( dbId,['myAttributeName'],ignoreHidden );

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。