完善主体资料,免费赠送VIP会员!
* 主体类型
* 企业名称
* 信用代码
* 所在行业
* 企业规模
* 所在职位
* 姓名
* 所在行业
* 学历
* 工作性质
请先选择行业
您还可以选择以下福利:
行业福利,领完即止!

下载app免费领取会员

NULL

ad.jpg

使用Dynamo脚本为管道及风管设置与过滤器颜色一致的材质,便于后续在渲染软件中对管道材质进行独立设置

发布于:2026-06-14 20:29:40

网友投稿

更多

本文工作为Revit模型渲染前的准备工作;通常我们配置Revit管道系统颜色会使用过滤器颜色进行设置,已知Revit模型渲染使用的是材质颜色,便于后续在渲染软件中能按不同系统赋材质,保证二者颜色一致性,确保渲染效果与模型常用的着色效果一致;

资料获取说明

本文用到的Revit软件版本为:Revit 2020;

本文使用到的Dynamo版本为:Revit2020自带的Dynamo Revit 2.1;

若需在2017~2019中使用,推荐安装DynamoInstall2.0.4,可完美适配公众号内提供的Dynamo插件包;

本文提到的所有文件获取方式:公众号内回复:Dynamo设置管道材质

本文为前半部分为Dynamo文件制作解析,后半部分为成品文件使用,让小白也能使用成品文件快速完成材质设置,如有需要可查看下一篇;

目录

Dynamo脚本编写思路解析

提取项目中的MEP系统

提取所有的MEP管道系统(含风管,管道)

提取所有的风管系统

提取所有的管道系统

新建材质并为材质修改颜色(着色模式颜色)

新建材质

选择材质

为材质修改颜色

将材质赋值到管道系统中

修改管道系统图形替换线图形的颜色

真实模型颜色思路

成品Dynamo使用

Dynamo脚本编写思路解析

提取项目中的MEP系统

提取所有的MEP管道系统(含风管,管道)

使用Element Types节点,选择MEPSystemType可以提取Revit文件中所有的管道类型,包括管道类型及风管类型;提取出来的为一个大类,需要使用All Elements of Type节点对大类进行拆分,以获得包含所有管道系统的列表;获得的管道系统列表为英文内容,可使用Orchid节点包中的o|ElementType.Name节点,获取各管道系统的中文字段;如下所示:

image.png

提取所有的风管系统

内容与上面提取所有MEP系统一致,Element Types节点下选择MechanlcalSystemType即可;

image.png

提取所有的管道系统

内容与上面提取所有MEP系统一致,Element Types节点下选择PipingSystemType即可;

image.png

新建材质并为材质修改颜色(着色模式颜色)

新建材质

        使用Orchid节点包中的o|Material.Create节点新建材质;若有此名称材质,不会新建;

image.png


选择材质

使用Material.ByName节点对项目中现有的材质进行选择,选中后可进行相应的修改;

image.png

选择材质

为材质修改颜色

使用下面的python代码进行材质颜色修改:

        材质名称的数量应与给定材质颜色的数量一致;若有多个材质,则中名称Code Block使用,隔开,如“喷淋系统”,“给水系统”;同时需要有对应数量的RGB颜色值,也用逗号隔开,如[[255,0,255],[0,0,0]];

       这里的颜色色号输入要求为数字,如果源内容为字段,则需要使用String.ToNumber节点将字段转换为数字;

image.png
import clr
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
clr.AddReference("RevitNodes")
import Revit
clr.ImportExtensions(Revit.Elements)
clr.ImportExtensions(Revit.GeometryConversion)
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager

doc = DocumentManager.Instance.CurrentDBDocument

if isinstance(IN[0], list):
    mat = UnwrapElement(IN[0])
else:
    mat = [UnwrapElement(IN[0])]

if isinstance(IN[1], list):
    col = IN[1]
else:
    col = [IN[1]]

def ToRevitColor(DynamoColor):
    return Color(DynamoColor[0], DynamoColor[1], DynamoColor[2])
mats = []
TransactionManager.Instance.EnsureInTransaction(doc)

for m, c in zip(mat, col):
#    m.CutPatternColor = ToRevitColor(c)
#    m.SurfacePatternColor = ToRevitColor(c)
    m.UseRenderAppearanceForShading = False
    m.Color = ToRevitColor(c)
    mats.append(m)

TransactionManager.Instance.TransactionTaskDone()
OUT = mats

        IN[0]为材质,IN[1]为颜色


        通过Python Script脚本配置材质颜色,有两个IN[X],其中IN[0]为材质,IN[1]为颜色,颜色输入内容eg:[[255,0,255]];以上代码中,行前有用#注释的内容分别为表面填充及截面填充内容,可按需选择;需要设置的话删除行前的#即可;

将材质赋值到管道系统中

使用Element.SetParameterByName节点,将材质附到管道系统材质参数下:

image.png

修改管道系统图形替换线图形的颜色

        使用下面的Python代码对管道系统图形线样式的颜色进行修改;输入为两项,IN[0]为管道系统,IN[1]为颜色值,颜色与上方一致,使用[[255,0,255]];形式输入。如下图所示:

image.png

import clr
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
clr.AddReference("RevitNodes")
import Revit
clr.ImportExtensions(Revit.Elements)
clr.ImportExtensions(Revit.GeometryConversion)
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager

doc = DocumentManager.Instance.CurrentDBDocument

if isinstance(IN[0], list):
    sys = UnwrapElement(IN[0])
else:
    sys = [UnwrapElement(IN[0])]

if isinstance(IN[1], list):
    col = IN[1]
else:
    col = [IN[1]]

def ToRevitColor(DynamoColor):
    return Color(DynamoColor[0], DynamoColor[1], DynamoColor[2])

system = []

TransactionManager.Instance.EnsureInTransaction(doc)

for s, c in zip(sys, col):
    s.LineColor = ToRevitColor(c)
    system.append(s)

TransactionManager.Instance.TransactionTaskDone()

OUT = system

IN[0]为管道系统,IN[1]为颜色值

真实模型颜色思路

考虑不同材质真实效果配置的区别,本文成品内容暂未直接对真实材质进行直接配置;推荐在材质按系统分类完成后,在Lumion等渲染软件中为模型设置真实材质,进一步提高材质渲染质量;如需在Revit中直接配置真实材质,可参考如下方法:

material.add image

material set render color


本文版权归腿腿教学网及原创作者所有,未经授权,谢绝转载。

未标题-1.jpg

上一篇:深化智能建造与建筑工业化协同发展!《江苏省住房城乡建设科技创新行动计划(2026—2028年)》发布

下一篇:Revit中还原地形地貌系列之(二),可编辑地形地貌