如何使用sdb数据库生成模型浏览器结构

时间:2019-10-28 19:01:58

标签: autodesk-forge

我需要重新创建模型浏览器的结构,但是到目前为止,我还没有获得成功,我正在尝试加入父母和孩子一起在查看器中创建该结构。

我的要求之一是使用model.sdb数据库,因此无法在查看器中使用树结构。 (查看器API)或模型衍生API

因此,在SQL查询和linq表达式之间进行任何操作都可以解决我的问题。

谢谢!

        var queryBranches = universe.Where(o => o.ObjectsEav.Any(eav => eav.Attribute.Name == "child" && eav.Attribute.Category == "__child__"));
        var queryLeafs = universe.Where(o => o.ObjectsEav.Any(eav => eav.Attribute.Name == "parent" && eav.Attribute.Category == "__parent__")).Except(queryBranches);

//Get Structure
foreach (var leaf in leafs)
{
    var leafAttr = leaf.ObjectsEav.FirstOrDefault(eav => eav.Attribute.Name == "parent");
    if (leafAttr == null)
        leafAttr = leaf.ObjectsEav.FirstOrDefault(eav => eav.Attribute.Name == "parent");

    ...

}

我的要求之一是使用model.sdb数据库,因此无法在查看器中使用树结构。 (查看器API)或模型衍生API

1 个答案:

答案 0 :(得分:1)

您可以在client browserbackend中查询属性db。

或者尝试使用model.getPropertyDb().executeUserFunction():Promise对PropertyDatabase实例在工作线程中执行功能:

 executeUserFunction(function(pdb) {
         var dbId = 1;
         pdb.enumObjectProperties(dbId, function(propId, valueId) {
               // do stuff
         });
    })