将元素的颜色设置为 ByLevel
在给元素添加颜色的过程中,发现不能直接将颜色号设置成 -1(ByLevel),经过在优先社区的查找,终于解决了,特此记录。
简介
设置元素的属性一般是创建一个 ElementPropertiesSetter,具体代码如下:
1 | ElementPropertiesSetter setter = new ElementPropertiesSetter(); |
转到 SetColor 的定义我们可以看到,它是这样的:
1 | public void SetColor(uint color); |
而在 ORD 中,我们可以得知,ColorByLevel 的值是 -1,这就让我们很为难了。
解决办法
实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel 真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
1 | public class ElementPropertyUint |
致谢
解决思路来自优先社区: https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending