ACC模型SQLite文件中External Id在Model Derivative API中缺失问题咨询
ACC SQLite文件与Model Derivative API数据差异原因分析请求
我正在尝试用从ACC拉取的模型SQLite文件替代Model Derivative API,以降低Autodesk服务器负载,但遇到了数据不一致的问题:
- 首先使用以下SQL将SQLite文件中的数据导入临时表:
SELECT ids.id AS dbId, ids.external_id AS externalId, attrs.name AS attrName, attrs.display_name AS attrDisplayName, attrs.category as attrCategory, attrs.data_type as attrDataType, attrs.data_type_context as attrDataTypeContext, vals.value AS valValue, attrs.flags FROM _objects_eav map LEFT JOIN _objects_id ids ON map.entity_id = ids.id LEFT JOIN _objects_attr attrs ON map.attribute_id = attrs.id LEFT JOIN _objects_val vals ON map.value_id = vals.id
调用Model Derivative API时,发现返回结果并未包含SQLite文件中的全部external Id。
对临时表数据进行分组查询:
SELECT DISTINCT ti.dbId ,ti.externalId ,max(case when ti.attrName = ? then ti.valValue end) attrComponentName ,max(case when ti.attrName = ? then ti.valValue end) attrParent ,max(case when ti.attrName = ? then ti.valValue end) attrTypeId ,max(case when ti.attrName = ? then ti.valValue end) attrElementId ,max(case when ti.attrName = ? then ti.valValue end) attrComponentSpace ,max(case when ti.attrName = ? then ti.valValue end) attrComponentReference ,max(case when ti.attrName = ? then ti.valValue end) attrComponentFloor FROM
查询后发现,部分拥有唯一dbId和externalId的行,其对应的attrElementId无法通过Model Derivative API查询到。我推测这类数据要么是模型的隐藏属性,要么是已从模型中删除但仍残留于SQLite文件中的数据。
希望了解两者数据存在差异的具体技术原因,恳请各位提供相关见解。
内容的提问来源于stack exchange,提问作者M Leipper
相关产品推荐
相关产品推荐

