材料在建筑里是一个很重要的基本概念,建筑里的各种物体都是由各种不同材料组合而成的。而且材料在建筑模型的结构分析、热量分析和可视化上面都有很重要的应用。
材料设置到物体可以大体分为下面几个方式:族类别的预定义材料,系统族的材料设置,构件的材料设置,面的材料设置。
组类别是Revit 中的一个基本特性,几乎所有的模型元素都是属于某一个组类别的, 顶层的组类别下可以有分支的组类别。
例如,墙是属于“墙”这个组类别,而“墙”组类别下面 有预制的“公共边”、“墙饰条-檐口”和“隐藏线”三个分支的组类别。
可以通过Category类的Material属性来把材料设置到一个组类别上面。
墙体是由很多层复合构成的综合体,而每层都设置属于该层的材料。
在UI界面中,要设置层结构的可以在“类型属性”对话框中,单击“结构”属性的“编辑”,将在“类型属性”对话 框中打开“编辑部件”对话框。
在API中,墙体的结构编辑位于CompoimdStructure类中, 可以从HostObjAttributes. GetCompoundStructureO方法来获取该类的实例,而墙体的类型元素(WallType)继承于HostObjAttributes类。同样继承于该类的类型元素(例如:楼板的类型元素(FloorType)和天花板的类型元素(CeilingType)等)也可以进行复合结构的材料设置。
如何为墙体设置材料代码:
public void SetWallMaterial(Document document,Wall wall,Material newMaterial)
{
WallType wallType = wall.WallType;
CompoundStructure wallCS = wallType.GetCompoundStructure();
//得到墙体第一层材料的元索Id
var allLayers = wallCS.GetLayers();
CompoundStructureLayer firstLayer = allLayers[0];
ElementId currentMatld = firstLayer.MaterialId;
//为墙体第一层设饨一个新材料
firstLayer.MaterialId = newMaterial.Id;
}
④、构件的材料设置
在族文档编辑器中为构件的材料进行定义和预制默认值。具体的步骤如下:
•在族编辑器中创建的几何图元自带一个材料属性。
•几何图兀的材料属性可以绑定到族参数上。
•在族文档加载到Revit document文档后,族参数转化为构件的实例参数和类型参数,可以通过设置相关参数来表示构件的材料。
⑤、面的材料设置
Revk 中提供“填色”和“删除填色” 的功能,允许把材料应用于或者取消应用于图元的面。API中提供了三个方式实现了面的材料设置的功能。
如下表:
函数名 |
功能 "^ |
void Paint(ElementId elcmentld, Face face, ElementId niaterialld) |
直接关联面和材料'^ |
void Paint(ElementId elcmentldt Face facet FamilyParameter familyParameter)\ |
关联面和材料类型的族参数 |
void RemovePaint(ElementId elementld, Face face) |
删除面和材料或材料类型族参数的关联 |
=========【更多高级应用请关注公众号】========
===================================