如果我使用 2 个不同类别的 material 作为墙结构,如何使用 revit api 为两个不同的层设置复合结构

How to set compound structure for two different layers if I used 2 different categories of material for wall structure , using revit api

我正在尝试创建一个有 2 层的墙,每层材料都不同。当我尝试为墙设置 CompoundStructure 时,出现 CompoundStructure 无效的异常。

CompoundStructure cStructure = CompoundStructure.CreateSimpleCompoundStructure(clayer);
wallType.SetCompoundStructure(cStructure);

谁能告诉我如何为不同材质的图层创建复合结构?

首先,通过最终用户界面手动解决您的任务并验证它是否有效。

然后,使用 RevitLookup 和其他数据库探索工具检查 BIM 元素中的结果、它们的属性和关系。

完成后,您将清楚如何以编程方式处理任务 – 并相信它会按预期工作:

newWallMaterial = wallMaterial.Duplicate("newCreatedMaterial");
                newWallmaterial2 = wallMaterial.Duplicate("NewCreatedMAterial2");
                //roofMaterial3 = roofMaterial2.Duplicate("NewCreatedMAterial3");

                bool usr = newWallMaterial.UseRenderAppearanceForShading;
                    //newWallMaterial.Color = BuiltInTypeParam.materialCol;


                foreach (Layers layer in layers)
                {
                    if (layer.layerId == 0)
                    {
                        c = new CompoundStructureLayer(layer.width, layer.materialAssignement, newWallMaterial.Id);
                        newWallMaterial.Color = color;
                        clayer.Add(c);
                    }
                    if (layer.layerId == 1)
                    {
                        c1 = new CompoundStructureLayer(layer.width, layer.materialAssignement, newWallmaterial2.Id);
                        newWallmaterial2.Color = color;
                        clayer.Add(c1);
                    }