使用 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; // 返回投影和切割表面的透明度
在视图中组合图形替代
如果元素的图形替代通过元素、类别和过滤条件设置,则应按以下优先级组合生成的替代:元素、类别、过滤器。