1

我们正在尝试使用 Forge Viewer with getBulkPropertiesmethod 导出元素的尺寸属性。对于 Revit 文件,该方法可以正常工作,但对于 Navisworks 文件,我们无法直接获得任何有用的属性。

当我们调查这个问题时,我们发现所有的externalIdNavisworks 文件都是以斜线分隔的整数格式(例如1/2/2/1/1)。如果我们从externalId(在这种情况下,使用1/2/2/1)中去掉最后一个整数,并获取相应元素的属性,那么我们可以获得一些有用的维度属性,并且该值与我们在桌面版 Navisworks 上看到的信息相匹配。

Navisworks 编码是否externalId意味着树结构?(我假设在这种情况下1/2/2/1是父母1/2/2/1/1)。什么可以解释我们的问题,即通过去掉最后一个整数,我们可以获得我们需要的信息?这是获取尺寸属性的可靠方法吗?

在 Chrome 控制台中重现这一点的小实验:

selected = AutodeskViewer.getSelection()[0]

AutodeskViewer.getProperties(selected, console.log)
/* {dbId: Array(1), properties: Array(0), externalId: "12/6/0/0/0/0"} */
/* We don't have any useful properties here */

// Get External ID mapping
map = {}; AutodeskViewer.model.getExternalIdMapping(ext_map => {map = ext_map})

// Chopoff the last integer, and run getProperties again
AutodeskViewer.getProperties(map['12/6/0/0/0'], console.log)
/* {dbId: 78085, properties: Array(151), externalId: "12/6/0/0/0", name: "Floor"} */
/* We get useful dimensional properties */
4

0 回答 0