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

Autodesk forge 如何使用sdb数据库生成模型浏览器结构,autodesk-forge,Autodesk Forge,我需要重新创建模型浏览器结构,但到目前为止我还没有成功,我正在尝试与父母和孩子一起在查看器中重新创建结构 我的要求之一是使用model.sdb数据库,因此我不能在查看器中使用树结构。(查看器API)或模型衍生API 所以SQL查询和linq表达式之间的任何东西都可以解决我的问题 谢谢 var queryBranches = universe.Where(o => o.ObjectsEav.Any(eav => eav.Attribute.Name == "child"

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

我的要求之一是使用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

您可以在或中查询属性数据库

或者尝试
model.getPropertyDb().executeUserFunction():Promise
在工作线程中针对PropertyDatabase实例执行函数:

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

在模型浏览器(de viewer内部)中,我们有一个层次结构,并非数据库中的每个对象都必须显示在模型浏览器中。我们在数据库中有一些实体,如图纸和元数据,它们不会出现在模型浏览器中。您的建议是在数据库中进行完整查询。这绝对不是我想要的。
我的要求之一是使用model.sdb数据库,o SQL查询和linq表达式之间的任何操作都可以解决我的问题
,因此我回答查询sdb以获取那里的模型数据并按照您的要求对其进行结构关系数据库没有层次结构,这就是为什么我需要进行正确的查询以装载该结构,首先,我查询所有类别,然后。很抱歉,我无法在我的问题上有效地证明这一点。在model.sdb这样的复杂数据库结构中进行这种逆向工程是非常困难的。我们有像父/子/类别/RC/RF/RFT这样的属性,我想要的是我需要使用什么过滤器来获得正确的类别。。。也许有了它,我就可以递归地得到childs并获得所需的结构。