项目中设置族几何实体材质

        最近做一个桥梁胎架的模型,讲真,由于未做过桥梁项目,至于什么是胎架,我还是一脸懵的状态。大概就是长下面这样:

好在有比较详细的图纸,照葫芦画瓢。做出模型也不是什么难事。像这样:

由多个族文件在项目文件中组装而成。

成果交付后,对方反馈缺少材质信息:

确实,“素颜”出门见人,着实有些寒酸,需要“梳洗打扮化妆”一番。

通常手动操作是需要以下流程:

编辑族→为族新建材质参数选中几何实体→关联材质参数→将族重载入项目→创建材质→设置材质

这个项目文件中近20个族文件,逐个去重复上面每一步的操作,着实有些无聊。

那么来看下如何通过Dynamo将上述步骤还原出来,减少机械劳动的吧!

主要用到的是Orchid节点包中的各类节点。

选择实例,获取到父族,获取到族文档,为族文件新建材质参数,有了上一篇批量添加族参数再认识的基础,Type和Group可通过下图所示设置:

获取到族文档中所有“拉伸”几何体:

import clr
clr.AddReference('RevitAPI')from Autodesk.Revit.DB import *
clr.AddReference('RevitNodes')import Revitclr.ImportExtensions(Revit.GeometryConversion)clr.ImportExtensions(Revit.Elements)
clr.AddReference('RevitServices')import RevitServicesfrom RevitServices.Persistence import DocumentManagerfrom RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocumentFam = UnwrapElement(IN[0])
TransactionManager.Instance.ForceCloseTransaction()e = FilteredElementCollector(doc.EditFamily(Fam))ele = e.OfClass(Extrusion).ToElements()OUT = ele

由于我各个族所做的几何体都是通过“拉伸”命令所作的,故OfClass中给的是“Extrusion”,还有以下几种构造几何形体的形式:

Extrusion 拉伸
Blend 融合
Revolution 旋转
Sweep 放样
SweptBlend 放样融合
‍FreeFormElement 自由形式图元

将几何实体关联材质参数:

将族重新载入项目:

在项目中新建材质,并设置表面填充颜色,截面填充颜色,着色颜色等参数:

设置实例材质参数:

演示效果:

看似风平浪静,实则暗流涌动。

欢迎阅读,分享,交流,批评指正。

文章来源:IAmTheOne