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

View 如何访问Revit的视图样板属性并实时比较它们?,view,properties,autodesk-forge,autodesk,revit,View,Properties,Autodesk Forge,Autodesk,Revit,我试图列出视图模板的属性,以便我们可以将它们与另一个旧模板进行比较。 例如,在给定模板中隐藏或替代了哪些模型图元,或者在给定模板中隐藏或替代了哪些Revit链接 (:) 我希望设计一个视图模板比较工具,并访问它们的所有者和创建者 public void ApplyViewTemplateToActiveView() { Document doc = this.ActiveUIDocument.Document; View viewTemplate = (from v in ne

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

(:)

我希望设计一个视图模板比较工具,并访问它们的所有者和创建者

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();
    }
}
public void ApplyViewTemplateToActiveView()
{
Document doc=this.ActiveUIDocument.Document;
查看viewTemplate=(从新FilterDeleteCollector(文档)中的v开始)
类别(视图的类型)
.Cast()
其中v.IsTemplate==true&&v.Name==“MyViewTemplate”
选择v)
.First();
使用(事务t=新事务(单据,“设置视图模板”))
{
t、 Start();
doc.ActiveView.ViewTemplateId=viewTemplate.Id;
t、 提交();
}
}
使用Revit API,您可以通过以下方式访问:
GetTemplateParameterIds方法/ViewTemplateId属性

谢谢Jeremy,我已经深入了解了你令人惊叹的网站,以及Konrad在Dynamo论坛上发布的一些解决方案。在Revit中,您可以过滤作为视图样板的视图,然后提取这些属性,是否正确?。 我想知道是否有人能用Forge为我指明正确的方向。 一些了不起的家伙正在开发BQL。
BQL(建筑查询语言)是一种针对建筑的查询语言,类似于SQL是一种针对数据库的查询语言。它是快速和灵活的。BQL有助于提高QA/QC(质量保证和质量控制)和建筑数据提取的效率,而无需离开Revit。我也在尝试这些,我想知道是否有一些工作,我可以开始与锻造下周关于这一点

谢谢杰里米,我已经深入了解了你令人惊叹的网站,以及康拉德在迪纳摩论坛上发布的一些解决方案。在Revit中,您可以过滤作为视图样板的视图,然后提取这些属性,是否正确?。 我想知道是否有人能用Forge为我指明正确的方向。 一些了不起的家伙正在开发BQL。 BQL(建筑查询语言)是一种针对建筑的查询语言,类似于SQL是一种针对数据库的查询语言。它是快速和灵活的。BQL有助于提高QA/QC(质量保证和质量控制)和建筑数据提取的效率,而无需离开Revit。我也在尝试这些,我想知道是否有一些工作,我可以开始与锻造下周关于这一点

是和否

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

不,如果您打算直接与RVT模型交互。Forge可以查看它,但要将任何内容推后或请求更改模型,目前还不可用。然后,我甚至不确定视图模板数据是否可以通过模型衍生导出获得

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

是和否

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

不,如果您打算直接与RVT模型交互。Forge可以查看它,但要将任何内容推后或请求更改模型,目前还不可用。然后,我甚至不确定视图模板数据是否可以通过模型衍生导出获得


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

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

对于ViewTemplate,我唯一无法得到的是“包含”,但其余的似乎都在那里

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


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

对于ViewTemplate,我唯一无法得到的是“包含”,但其余的似乎都在那里

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


问题是什么?使用Forge是否有可能做到这一点?问题是什么?使用Forge是否有可能做到这一点?感谢Konrad的精彩回答和解释,我完全同意你的回答,没有必要让Forge参与这项任务,正如你所指出的,这项任务很容易解决。顺便说一句,我仍然很好奇,如果使用Forge,您是否可以访问这些特定数据。希望在即将到来的Forge Accelerator中了解更多信息。Konrad非常乐意在用户同步之前发送这些数据并进行实时比较,以便及时预防。感谢Konrad的出色回答和解释