【问题标题】:How to filter model by system如何按系统筛选模型
【发布时间】:2018-12-24 22:39:38
【问题描述】:

当我在 Revit 中打开 3D 模型时,我可以使用系统浏览器按系统过滤我的视图。但是,在 Autodesk 查看器中查看同一文件时,我看不到按系统过滤视图的选项。

那么,有没有办法按系统过滤模型?

【问题讨论】:

    标签: autodesk-forge autodesk-viewer


    【解决方案1】:

    如果我理解正确,您想要的信息在System Name 属性下。这是在叶级别(注意模型是分层的)。所以通常我们从enumerating leaf nodes开始。

    您可以从中列出所有系统,例如:

    getAllLeafComponents(NOP_VIEWER, function (dbIds) {
        NOP_VIEWER.model.getBulkProperties(dbIds, ['System Name'], function(e){
            var systems = [];
            e.forEach(function(item){
                var sysName = item.properties[0].displayValue;
                if (systems.indexOf(sysName)==-1) systems.push(sysName);
            });
            console.log(systems);
        });
    })
    

    systems 数组将包含模型上的系统。从该列表中,您可以.search(systemName, cbSuccess, cbFail, ['System Name']),查看最后一个参数如何指示要搜索的属性。

    如果您已经知道系统名称,只需使用最后一次搜索调用...

    【讨论】:

    • 模型中没有“系统名称”属性。抱歉没有解释清楚,here's an image 是我在 Autodesk 查看器中上传和翻译后试图找到的系统浏览器。
    • @Kanosaki 我只看到Type Name,确实没有这个特定元素的系统名称......现在我不确定它是否只是这个模型,因为我可以在其他模型上看到系统, 这个模型是一个基本的示例文件。
    • 我尝试了其他更复杂的模型,这些模型具有大量系统,但在翻译过程之后,我在任何对象的属性上都看不到 system name 属性。据我所知,Forge Viewer 中的model browser 窗口与Revit 中的family window 匹配,而在Revit 中,该对象不包含属性System Name。所以...我不知道Revit 如何跟踪系统,或者翻译过程是否实际包含或转储Systems
    猜你喜欢
    • 2021-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-28
    相关资源
    最近更新 更多