我正在尝试列出视图模板的属性,以便我们可以将它们与另一个旧模板进行比较。 例如,在给定模板中隐藏或覆盖了哪些模型元素,或者在给定模板中隐藏或覆盖了哪些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属性
答案 0 :(得分:1)
Revit API公开了几乎所有的ViewTemplate属性。 例如,此方法返回特定类别的所有可见性/图形替代:
https://apidocs.co/apps/revit/2019/ed267b82-56be-6e3b-0c6d-4de7df1ed312.htm
我唯一无法获得ViewTemplate的东西是“包含”,但其余的似乎都在那里。
更新:
可以使用GetNonControlledTemplateParameterIds()
检索“不包括”的列表或属性。
答案 1 :(得分:0)
感谢Jeremy,我深入了解了你的网站以及Konrad在Dynamo论坛上发布的一些解决方案。在Revit中似乎可以实现,你过滤View模板然后提取这些属性,是否正确? 我想知道是否有人可以指出我与Forge正确的方向。 一些了不起的人正在开发一个BQL https://www.retriever.works/。 BQL(构建查询语言)是建筑物的查询语言,类似于SQL是数据库的查询语言。它快速而灵活。 BQL有助于提高QA / QC(质量保证和质量控制)的效率,并在不离开Revit的情况下构建数据提取。我也在尝试这些,我想了解是否有一些我可以从Forge下周开始的工作。
答案 2 :(得分:0)
是的,不。
是的,我猜你可以使用Forge Model Derivative API导出RVT文件,然后围绕View Templates数据构建一个仪表板。这假设视图模板数据实际上是在转换模型时导出的。该数据没有附加到任何几何体,所以如果它被跳过,我不会感到惊讶。这里的问题是为什么?这就像租用一辆16轮卡车在街道上移动行李袋一样。
不,如果您打算直接与RVT模型互动。 Forge可以查看它,但是要推回任何东西或请求更改模型,目前还不可用。然后,我甚至不确定视图模板数据是否可通过模型衍生出口获得。
这给我带来了另一种选择。为什么不使用标准方式Revit API收集数据,然后将其推送到数据库并在此基础上构建?没有理由将Forge用于其中任何一项。