为了方便中文用户更好地体验 Rhino.Inside®.Revit,我们在 Rhino3D 中文讨论区更新了 Rhino.Inside®.Revit 中文手册的相关内容,您可以浏览访问以下链接进行系统化学习:
在 Revit 中可以利用 Rhino.Inside®.Revit 提供的 Grasshopper 专用运算器,来创建原生的 Revit 图元,包括墙体、幕墙、网格线、空间图元、楼层、楼板、屋顶、开口件、楼梯、扶手...等一些列的原生物件。本次更新的教学为 Rhino.Inside®.Revit 中文手册102中的内容,主要介绍 Revit 中的材质。
材质
Material
Revit 中的材质是一种比较复杂的数据类型,通常被用于:
赋予给Revit图元的图形属性(例如浴室墙壁上的瓷砖图案);
模型中嵌入建筑施工信息以便于不同阶段读取使用;
建筑可视化的建筑外表面显示属性;
用于各种模拟分析的物理与热度属性。
因此,Revit 中的每一个材质都会具备下面5个主要的特性:
Identity 标识
Graphics 图形
Appearance Properties 外观
Physical Properties 物理
Thermal Properties 热度
在 Revit 材质编辑器窗口中有对应的选项卡:
在 Rhino.Inside.Revit 中我们也提供了对应的5个主要的运算器:
Material Identity
Material Graphics
Analyze Appearance Asset (Generic)
Analyze Physical Asset
Analyze Thermal Asset
Extract Material’s Assets 运算器用于提取材质的相关特性(外观物理与热度),且可以使用上面列出的运算器对每一项特性进行深入地分析,在后面的材质特性(Material Assests) 中会介绍更多的相关内容。
在下面的视频中我们将会讨论如何使用 Rhino.Inside.Revit 来处理这5个方面的相关问题:
1
查询材质
●
API
在 Revit API 中使用 DB.Material 来表示材质,这个类别用来处理材料的标识与图形,且提供查询与修改外观、物理与热度属性的方法。
第一个挑战是能在一个模型中查询可用的材质或是找到一个想要使用的材质,通常建议使用
Query Materials 运算器。默认情况下这个运算器能找到且输出一个模型中所有的材质,您也可以通过选择性地输入不同的过滤方式、名称与类的方式来过滤现有材质,还可以自定义更多的过滤方法。
2
材质标识
●
可以使用
Material Identity运算器来获取材质标识:
也可以用它来修改一个材质的标识属性:
3
材质图形
●
使用
Material Graphics 运算器来获取材质图形:
也可以用它来修改图形属性:
4
创建材质
●
在 Revit 模型中使用
Add Material 文档感知运算器来创建一个新的材质,记住要为新材质给定一个唯一的名字。
然后您可以继续使用
Material Graphics、
Material Identity 或
Replace Material's Assets来为新的材质定义图形属性等。
5
材质资产 Material Assets
●
前面介绍了如何分析材质标识与图形,如何创建简易材质,如果要充分地掌握 Revit 中的材质,还需要进一步了解材质背后的其他三个基本概念:外观、物理与热度。
● 资产 Assets ●
资产 是 Revit 中材质的外观、物理与热度方面背后的基本概念,Rhino.Inside.Revit 也提供了一些对应的运算器以Grasshopper 的方式来创建、修改与分析这些资产 ,也提供了一些用于提取与替换一个材质中的这些内容的运算器。
使用
Extract Material’s Assets来提取一个材质的资产:
请注意资产与材质是不同的数据类型,每一个 Revit 的材质都包含标识与图形属性,也会赋予用于外观 、物理与热度等资产至材质,热度资产是完全可以选的。
API
Revitalizing API 对资产的支持非常有限,我们尝试在这个章节描述清楚 Revit Visual API 的内部工作原理。
● 5.1 外观资产 ●
所有的外观资产都是 DB.Visual.Asset 类且是一个带有一个名称(例如generic_diffuse)、一个类型和一个值的视觉属性的集合。DB.Visual.Asset 具有查找和返回这些属性的方法,这些属性都经由 Revit API 中的 DB.Visual.AssetProperty 类封装,这个类型也支持从属性中提取值。
Revit 中有很多不同的外观资产, 例如 Generic , Ceramic , Metal , Layered , Glazing 等,每个资产都有一个不同的属性设置。要使用这些外观资产,我们就需要一种方法来了解每种资产类型可用的属性名称。Revit API 提供具有静态只读字符串属性的静态类,这些属性提供了一种简单的方法来获取这些属性的名称,例如 DB.VisualGeneric 的 GenericDiffuse 属性返回名称 generic_diffuse, 它是 Generic 财产的漫反射属性的名称。
● 5.2 物理与热度资产 ●
物理资产与热度资产完全不同,其运作方式和外观资产非常相似,它们依然是属性的集合,这些属性都会作为 Revit 参数(DB.Parameter)模型且由 DB.PropertySetElement 实例收集, 不是将静态类作为名称的访问器,而是必须通过内置的Revit参数来访问,如DB.BuiltInParameter的 THERMAL_MATERIAL_PARAM_REFLECTIVITY。
Revit API提供DB.StructuralAsset与DB.ThermalAsset 类型以提供对物理与热属性的快速访问,但并非所有属性都包含在这些类型中,而且也不会检查属性值的有效性。
● 5.3 Grasshopper as Playground ●
这里提供包含 Python 的 Grasshopper 脚本文件, 可以帮助你查询这些资产的属性:
6
外观资产
●
外观资产在其他一些产品中叫渲染材质,Rhino.Inside.Revit 中 Grasshopper 提供许多运算器来处理外观资产。详细请观看以下视频:
Revit API 中有很多外观资产,例如您可以使用
Create Appearance Asset 来创建一个 Generic 外观资产且通过
Replace Material’s Assets 赋予给一个 Revit 材质:
Analyze Appearance Asset (Generic) 与
Modify Appearance Asset (Generic) 可以用于简化一个当前资产,或分析与提取其已知属性值:
7
纹理资产
●
外观资产具有一系列可以接受嵌套资产(本指南把它叫纹理资产)的属性,例如一个 Generic 外观资产既然可以包含一个颜色值,也可以链接至另外一个位图类型的资产(或其他纹理资产)。
Rhino.Inside.Revit 提供一些运算器来构建与拆解这些资产类型,外观资产也可以接受适当的纹理资产,例如使用
Construct Bitmap Asset 与
Deconstruct Bitmap Asset 来构造与拆解位图资产:

API
请注意:构建与拆解纹理运算器仅传递包含纹理资源的数据结构,并不会在 Revit 模型中建立任何内容,实际上创建纹理资源(当接入输入参数时)且将其链接到正在创建外观资源属性的是 Create Appearance Asset 运算器,这个行为反映了 Revit API 中‘链接’(嵌套)资源的内部工作方式。
8
物理资产
●
使用
Create Physical Asset 文档行为运算器来创建物理资产且使用
Replace Material’s Assets 运算器赋予给一个材质,使用
Physical Asset Class 与
Physical/Thermal Asset Behaviour 作为输入,然后分别设置物理资产的类型与行为:
和前面讨论的修改与分析运算器类似,
Analyze Physical Asset 与
Modify Physical Asset 运算器可以用来修改与分析当前物理资产。
9
热度资产
●
和前面讨论的修改与分析运算器类似,
Analyze Thermal Asset 与
Modify Thermal Asset 用来修改与分析当前的热度资产。
~本次更新结束,更多精彩文章请您持续关注 Rhino 原厂服务号 Rhino3d 和微信订阅号 Shaper3D 所推送的相关内容~
近期 Rhino.Inside.Revit更新介绍系列
请点击图片或扫描图中二维码了解详情
Rhino原厂近期面授课程
Rhino原厂定期在中国开设高级面授课程,面向需要系统和深入掌握Rhino曲面造型和Grasshopper参数化设计的用户开设的全日制课程。课程注重系统性、理解性,并侧重技巧和实用性经验的传授,课程主要面向建筑设计行业和产品艺术设计行业。
点击下方图片可了解近期开设的面授课程
关注Rhino原厂微信公众号获取更多优质内容


