You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Revit 2019之后版本SetProjectionFillColor实体填充颜色设置问题

Revit 2020+ 元素实体填充颜色设置失效解决方案

问题根源

Revit 2020及后续版本对视图图形覆盖API进行了调整,旧版OverrideGraphicSettings类的填充逻辑被拆分优化,直接沿用旧代码无法正确触发实体填充效果。

修复后代码实现

改用GraphicSettings类配合对应重载方法,同时必须显式开启填充可见性:

// 获取实体填充图案
FillPatternElement solidFill = FillPatternElement.GetFillPatternElementByName(doc, FillPatternTarget.Drafting, "Solid");
if (solidFill == null)
{
    throw new InvalidOperationException("无法获取实体填充图案");
}

// 初始化新版图形设置实例
GraphicSettings gs = new GraphicSettings();
// 设置填充颜色
gs.SetProjectionFillColor(new Color(255, 0, 0));
// 绑定实体填充图案
gs.SetProjectionFillPatternId(solidFill.Id);
// 关键:显式开启填充可见性(新版本默认隐藏)
gs.SetProjectionFillVisibility(true);

using (Transaction transaction = new Transaction(doc, "Colorize Elements"))
{
    transaction.Start();
    foreach (ElementId id in allNeddedElement)
    {
        // 使用支持GraphicSettings的重载方法设置覆盖
        doc.ActiveView.SetElementOverrides(id, gs);
    }
    transaction.Commit();
}

核心注意事项

  • API版本适配:Revit 2020起官方推荐使用GraphicSettings替代旧版OverrideGraphicSettings,后者部分功能已标记为过时。
  • 填充可见性开关:新版本中填充默认处于隐藏状态,仅设置颜色和图案不会生效,必须调用SetProjectionFillVisibility(true)。
  • 填充图案类型:获取填充图案时需注意FillPatternTarget参数, drafting类型适用于多数二维视图元素,三维元素可尝试使用Model类型。

内容的提问来源于stack exchange,提问作者Bender__SS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 19:57:15