最近做一个桥梁胎架的模型,讲真,由于未做过桥梁项目,至于什么是胎架,我还是一脸懵的状态。大概就是长下面这样:
好在有比较详细的图纸,照葫芦画瓢。做出模型也不是什么难事。像这样:
由多个族文件在项目文件中组装而成。
成果交付后,对方反馈缺少材质信息:
确实,“素颜”出门见人,着实有些寒酸,需要“梳洗打扮化妆”一番。
通常手动操作是需要以下流程:
编辑族→为族新建材质参数→选中几何实体→关联材质参数→将族重载入项目→创建材质→设置材质
这个项目文件中近20个族文件,逐个去重复上面每一步的操作,着实有些无聊。
那么来看下如何通过Dynamo将上述步骤还原出来,减少机械劳动的吧!
主要用到的是Orchid节点包中的各类节点。
选择实例,获取到父族,获取到族文档,为族文件新建材质参数,有了上一篇批量添加族参数再认识的基础,Type和Group可通过下图所示设置:
获取到族文档中所有“拉伸”几何体:
import clr
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
clr.AddReference('RevitNodes')
import Revit
clr.ImportExtensions(Revit.GeometryConversion)
clr.ImportExtensions(Revit.Elements)
clr.AddReference('RevitServices')
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument
Fam = 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 | 自由形式图元 |
将几何实体关联材质参数:
将族重新载入项目:
在项目中新建材质,并设置表面填充颜色,截面填充颜色,着色颜色等参数:
设置实例材质参数:
演示效果:
看似风平浪静,实则暗流涌动。
欢迎阅读,分享,交流,批评指正。
文章来源:
评论0