Revit二次开发之材料Material的设置【比目鱼原创】

材料在建筑里是一个很重要的基本概念,建筑里的各种物体都是由各种不同材料组合而成的。而且材料在建筑模型的结构分析、热量分析和可视化上面都有很重要的应用。


材料设置到物体可以大体分为下面几个方式:族类别的预定义材料,系统族的材料设置,构件的材料设置,面的材料设置。


①、组类别的预定义材料

组类别是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 中是一个较为特殊的复杂结构,它是由很多独立的元素关联组合起来的,例如,楼梯有很多的扶手,有很多的梯面或者梯段。而扶手是可以自定义的,可以定义出各种各样的扶手,等等。而这些都是可以设置材料的,显然材料的设置不会直接位于楼梯这个复杂结构的组合体上,而是位于各个细节的具体组成元素上。


④、构件的材料设置
在族文档编辑器中为构件的材料进行定义和预制默认值。具体的步骤如下:
•在族编辑器中创建的几何图元自带一个材料属性。
•几何图兀的材料属性可以绑定到族参数上。
•在族文档加载到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)

删除面和材料或材料类型族参数的关联

=========【更多高级应用请关注公众号】========


===================================


你可能感兴趣的:(Revit二次开发之材料Material的设置【比目鱼原创】)