如果我使用 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);
}
我正在尝试创建一个有 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);
}