通过ElementColor类得到的颜色中有Element类型、Bylevel,ByCell,其中element可以直接得到对应的rgb值,bylevel可以通过levelDefinitonColor获得,那么ByCell的颜色怎么处理呢?当元素是SharedCell时获得的elementcolor就是ByCell源的
推测你DGN文件是从DWG转换过来的吧?从MS帮助中可以看到如下英文解释:
Color can also be set ByCell or ByLevel. If ByCell is selected, when a cell is placed the active color is used in place of the color used when the cell was created.ByCell is enabled, by default, only in DWG workmode. You can enable ByCell in DGN workmode by enabling the following capability in the standards, project, or user configuration file: _USTN_CAPABILITY <+CAPABILITY_BYCELL.
大致意思就是说,这个ByCell的颜色是从你创建Cell的颜色来取的,不受当前系统颜色的影响。另外,这个ByCell仅在DWG工作模式默认起作用。
老师,那这种cell的颜色是不是就没办法在当前系统中获取到了啊?
符老师,那我想要获得这个cell的assign material,所需的颜色是创建cell时的颜色吗?有没有办法得到需要的颜色呢?
xz h said:那这种cell的颜色是不是就没办法在当前系统中获取到了啊?
SharedCell的颜色可以被覆盖的,所以才会存在ElementColor和ByCell Color。都是可以取得的。
xz h said:那我想要获得这个cell的assign material,所需的颜色是创建cell时的颜色吗?有没有办法得到需要的颜色呢?
Material(材质)中设置的颜色只有在视图显示样式被设置为渲染方式时才会覆盖元素本身的颜色。所以,要正确获得你当前看到的是什么颜色,其实还依赖于很多方面。我记得在另外一个帖子中说过,大概有7个方面都会影响到元素当前的显示颜色。所以,您要先搞清楚想要获得元素在什么状态下的颜色。
可否提供一个DGN文件,仅包含你这一个想要获取颜色的元素供我们分析。
BIM.dgn
符老师,这是读取颜色遇到问题的几个模型。其中Bylevel 18 38 140 254这几种颜色都没有办法获取到。