如何访问 Revit 的视图模板属性并实时比较它们?

How to access View Template Properties for Revit and compare them in Real Time?

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

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

是,也不是。

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

否,如果您打算直接与 RVT 模型交互。 Forge 可以查看它,但无法将任何内容推回或请求对模型进行更改。再一次,我什至不确定视图模板数据是否可以通过模型衍生导出获得。

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

Revit API 公开了几乎所有的 ViewTemplate 属性。 例如,此方法 returns 所有 Visibility/Graphic 覆盖特定类别:

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

我唯一无法获得 ViewTemplate 的是 "includes",但其余的似乎都在那里。

更新: 可以使用 GetNonControlledTemplateParameterIds().

检索列表或属性 "not included"