在BIM中设置视图特定图形

使用 ODA BIM SDK,可以轻松地获取一个视图并覆盖面和边颜色、填充图案、线宽以及其他参数的显示。覆盖应用于元素、元素类别以及通过过滤条件的元素。

视图的选定显示模式会影响覆盖。在着色模式下,即使设置了材质,覆盖也会应用于面和边,但在真实模式下,材质的纹理具有优先权。

OdBmDBView 类具有以下属性,用于访问被覆盖图形的数据:

  • OdBmAdHocOverridesPtr getAdHocOverrides() const;
  • OdBmFilterOverridesPtr getFilterOverrides() const;
  • OdBmGraphicOverridesPtr getGraphicOverrides() const;

生成的对象包含元素、类别或过滤条件 ID 以及被覆盖图形数据的映射。

为了简化对被覆盖图形的访问,OdBmDBView 提供了三种方法:

  • OdBmOverrideGraphicSettingsPtr getCategoryOverrides(const OdBm::BuiltInCategory::Enum&) const
    返回视图中某个类别的图形覆盖。输入参数是内置类别 ID。
  • OdBmOverrideGraphicSettingsPtr getElementOverrides(const OdBmObjectId&) const
    返回视图中某个元素的图形覆盖。输入参数是元素 ID。
  • OdBmOverrideGraphicSettingsPtr getFilterOverrides(const OdBmObjectId&) const;
    返回视图中某个过滤器的图形覆盖。输入参数是过滤器元素 ID。

如果传递的参数没有图形替代,这些方法将返回一个空指针。

OdBmOverrideGraphicSettings 类具有访问面和边图形替代数据的方法:

  • OdInt32 getDetailLevel() const; // 返回视图中被覆盖的详细级别
  • bool getHalftone() const; // 返回半色调覆盖的值
  • bool getProjFillPatternVisible() const; // 返回面被覆盖的填充图案的可见性
  • bool getCutFillPatternVisible() const; // 返回切割表面填充图案的可见性

以下方法返回 OdBmObjectPtr,应将其转换为适当的对象:

  • OdBmObjectPtr getProjPenNumber() const; // 返回 OdBmGPenNumberOverriderPtr - 投影表面线宽
  • OdBmObjectPtr getCutPenNumber() const; // 返回 OdBmGPenNumberOverriderPtr - 切割表面线宽
  • OdBmObjectPtr getProjLinePattern() const; // 返回 OdBmGLinePatternOverriderPtr - 投影表面线型
  • OdBmObjectPtr getCutLinePattern() const; // 返回 OdBmGLinePatternOverriderPtr - 切割表面线型
  • OdBmObjectPtr getProjPenColor() const; // 返回 OdBmGStyleColorOverriderPtr - 投影表面线颜色
  • OdBmObjectPtr getCutPenColor() const; // 返回 OdBmGStyleColorOverriderPtr - 切割表面线颜色
  • OdBmObjectPtr getProjFillPattern() const; // 返回 OdBmGFillPatternOverriderPtr - 表面填充图案
  • OdBmObjectPtr getCutFillPattern() const; // 返回 OdBmGFillPatternOverriderPtr - 切割表面填充图案
  • OdBmObjectPtr getProjFillColor() const; // 返回 OdBmGFillColorOverriderPtr - 投影表面填充颜色
  • OdBmObjectPtr getCutFillColor() const; // 返回 OdBmGFillColorOverriderPtr - 切割表面填充颜色
  • OdBmGSurfacesTransparencyOverriderPtr getSurfacesTransparency() const; // 返回投影和切割表面的透明度

在视图中组合图形替代

如果元素的图形替代通过元素、类别和过滤条件设置,则应按以下优先级组合生成的替代:元素、类别、过滤器。

今天就开始行动

免费试用 ODA 软件 60 天。
无风险,无需信用卡。

免费试用