首页 > 解决方案 > 如何在revit api c#中为材料的表面图案添加颜色#

问题描述

我正在做一个项目,我需要在 revit api 中为元素的材料添加属性我能够完成任务,除了我无法添加表面图案颜色和切割图案颜色。

我的代码如下

Color matColor = new Color(Byte.Parse(materials.Red.ToString()), Byte.Parse(materials.Green.ToString()), Byte.Parse(materials.Blue.ToString()));
myMaterial.Color = matColor;
myMaterial.Transparency = 0;
myMaterial.SurfacePatternColor = matColor;
myMaterial.CutPatternColor = matColor;  

颜色仅适用于材料颜色,而不适用于表面图案和切割图案我也没有收到任何错误请指导我哪里出错了

先感谢您

标签: c#revit-apirevit

解决方案


我认为它确实应用了颜色,但是您忘记添加图案。所以你现在有一个颜色但一个空的图案。你想让它坚固吗?然后我认为下面的代码应该可以工作(我没有测试过):

FillPatternElement myFillPattern = new FilteredElementCollector(doc).OfClass(typeof(FillPatternElement)).Cast<FillPatternElement>().First(a => a.Name.Contains("Solid fill"));
myMaterial.SurfacePatternId = myFillPattern.Id;
myMaterial.CutPatternId = myFillPattern.Id;

推荐阅读