Forge 查看器:如何隔离自定义对象?
Forge viewer: how to isolate custom objects?
我们使用自定义对象来可视化 ifc space 数据(主要是房间)。作为指导,我们使用了这个非常有帮助的 blog。绘制对象后,我们还想从外部 select 自定义对象并将它们隔离在查看器中。正如教程所建议的,我们更改模型构建器的 changeFragmentsDbId 函数以设置尚不存在的 DbId,因此不会与现有的 DbId 重叠。一种方法是对我们的自定义对象 DbId 使用负数 space [-1、-2、-3...],如下所示:
const roomFragId = this.modelBuilder.addFragment(roomGeometryId, materialName, transform);
this.modelBuilder.changeFragmentsDbId(roomFragId, -roomFragId);
另一种是找到最大 DbId(例如 4905)并为我们的自定义对象 DbId(例如 [4906, 4907, 4908...])使用大于此最大 DbId 的数字:
const roomFragId = this.modelBuilder.addFragment(roomGeometryId, materialName, transform);
this.modelBuilder.changeFragmentsDbId(roomFragId, maxDbId + roomFragId);
但是,当我们尝试隔离自定义绘制的对象(viewer.isolate(-1)
或 viewer.isolate(4906)
)时,查看器会自行刷新,但没有对象被隔离...
因此,我们想知道如何隔离自定义对象?
换句话说,当我们 select 查看器中的对象用于否定 space 方法时 => 我们在聚合中得到 DbId(例如 -1)select离子事件。
感谢您的帮助!
要隔离或 select 由 SceneBuilder
分机创建的自定义对象,您需要将 model
对象传递给 Viewer3D#isolate
/ Viewer3D#select
,如下所示.否则,viewer
将使用 viewer.model
。
viewer.isolate( [4906, 4907, 4908...], this.modelBuilder.model )
viewer.select( [4906, 4907, 4908...], this.modelBuilder.model )
我们使用自定义对象来可视化 ifc space 数据(主要是房间)。作为指导,我们使用了这个非常有帮助的 blog。绘制对象后,我们还想从外部 select 自定义对象并将它们隔离在查看器中。正如教程所建议的,我们更改模型构建器的 changeFragmentsDbId 函数以设置尚不存在的 DbId,因此不会与现有的 DbId 重叠。一种方法是对我们的自定义对象 DbId 使用负数 space [-1、-2、-3...],如下所示:
const roomFragId = this.modelBuilder.addFragment(roomGeometryId, materialName, transform);
this.modelBuilder.changeFragmentsDbId(roomFragId, -roomFragId);
另一种是找到最大 DbId(例如 4905)并为我们的自定义对象 DbId(例如 [4906, 4907, 4908...])使用大于此最大 DbId 的数字:
const roomFragId = this.modelBuilder.addFragment(roomGeometryId, materialName, transform);
this.modelBuilder.changeFragmentsDbId(roomFragId, maxDbId + roomFragId);
但是,当我们尝试隔离自定义绘制的对象(viewer.isolate(-1)
或 viewer.isolate(4906)
)时,查看器会自行刷新,但没有对象被隔离...
因此,我们想知道如何隔离自定义对象?
换句话说,当我们 select 查看器中的对象用于否定 space 方法时 => 我们在聚合中得到 DbId(例如 -1)select离子事件。
感谢您的帮助!
要隔离或 select 由 SceneBuilder
分机创建的自定义对象,您需要将 model
对象传递给 Viewer3D#isolate
/ Viewer3D#select
,如下所示.否则,viewer
将使用 viewer.model
。
viewer.isolate( [4906, 4907, 4908...], this.modelBuilder.model )
viewer.select( [4906, 4907, 4908...], this.modelBuilder.model )