【问题标题】:How to access View Template Properties for Revit and compare them in Real Time?如何访问 Revit 的视图模板属性并实时比较它们?
【发布时间】:2018-11-18 20:56:08
【问题描述】:

我正在尝试列出视图模板的属性,以便我们可以将它们与另一个旧模板进行比较。 例如,在给定模板中隐藏或覆盖了哪些模型元素,或者在给定模板中隐藏或覆盖了哪些 Revit 链接。

View Template (https://www.google.com/search?q=view+template+revit&rlz=1C1GGRV_enUS770US770&source=lnms&tbm=isch&sa=X&ved=0ahUKEwjLndrd2cTbAhVESq0KHX1cAPwQ_AUICygC&biw=1536&bih=824#imgrc=Q0v-pV7Nxl4kfM:)

我正在寻求设计一个查看模板比较工具并访问它们的所有者和创建者。

public void ApplyViewTemplateToActiveView()
{
    Document doc = this.ActiveUIDocument.Document;
    View viewTemplate = (from v in new FilteredElementCollector(doc)
        .OfClass(typeof(View))
        .Cast<View>()
        where v.IsTemplate == true && v.Name == "MyViewTemplate"
        select v)
        .First();
    using (Transaction t = new Transaction(doc,"Set View Template"))
    {
        t.Start();           
        doc.ActiveView.ViewTemplateId = viewTemplate.Id;
        t.Commit();
    }
}

使用 Revit API,您可以通过以下方式访问: GetTemplateParameterIds 方法/ViewTemplateId 属性

【问题讨论】:

    标签: view properties autodesk-forge autodesk revit


    【解决方案1】:

    感谢 Jeremy,我已经深入了解了您令人惊叹的网站以及 Konrad 在 Dynamo 论坛上发布的一些解决方案。在 Revit 中似乎可以实现,您过滤作为视图模板的视图,然后提取这些属性,是否正确? 我想知道是否有人可以用 Forge 为我指明正确的方向。 一些了不起的家伙正在开发 BQL https://www.retriever.works/。 BQL(Building Query Language)是一种用于建筑物的查询语言,类似于 SQL 是一种用于数据库的查询语言。它快速而灵活。 BQL 有助于提高 QA/QC(质量保证和质量控制)的效率,并在不离开 Revit 的情况下构建数据提取。我也在尝试这些,我想了解下周是否有一些我可以从 Forge 开始的作品。

    【讨论】:

    • 有什么问题?
    • Forge 可以做到这一点吗?
    【解决方案2】:

    是的,也不是。

    是的,我想您可以使用 Forge Model Derivative API 导出 RVT 文件,然后围绕 View Templates 数据构建仪表板。这是假设视图模板数据在模型翻译时实际被导出。该数据未附加到任何几何图形,因此如果跳过它,我不会感到惊讶。这里的问题是为什么?这就像租一辆 16 轮卡车将一个行李袋搬过马路。

    不,如果您的意图是直接与 RVT 模型交互。 Forge 可以查看它,但要推回任何内容或请求更改模型,尚不可用。再说一次,我什至不确定视图模板数据是否可以通过模型衍生导出获得。

    这给我带来了另一种选择。为什么不使用标准方法 Revit API 收集数据,然后将其推送到数据库并在此基础上构建?没有理由为此使用 Forge。

    【讨论】:

    • 感谢 Konrad 的出色回答和解释,我完全同意您的回答,此任务无需涉及 forge,正如您指出的那样很容易解决。顺便说一句,我仍然很好奇 Forge 是否可以访问这些特定数据。希望在即将推出的 Forge Accelerator 中了解更多信息。
    • Konrad 可以很好地发送这些数据并在用户同步之前实时进行比较,以便及时阻止它。
    【解决方案3】:

    Revit API 公开了几乎所有 ViewTemplate 属性。 例如,此方法返回特定类别的所有可见性/图形覆盖:

    https://apidocs.co/apps/revit/2019/ed267b82-56be-6e3b-0c6d-4de7df1ed312.htm

    对于 ViewTemplate,我唯一无法获得的是“包含”,但其他所有内容似乎都在那里。

    更新: 可以使用GetNonControlledTemplateParameterIds() 检索“未包含”的列表或属性。

    【讨论】:

    • 您好 Teo 非常感谢,目前主要的问题是访问链接模型视图的属性。让我们看看他们是否也会为此打开 API。
    猜你喜欢
    • 1970-01-01
    • 2012-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多