原文链接:
Change Element Colour
我们曾经在博文 changing the colour of model or detail curves 中讨论过如何通过设置模型或者细节曲线的类别线风格来改变它们的颜色。
现在我们又遇到了另一个小问题:如何设置一个元素的颜色。为此 Joe Ye 给出了一个简单明确的回答。
提问:
如何通过编程方式改变一个注释符号的颜色?比方说标签?
回答:
通过编程方式,可以在指定视图中通过视图类的 ProjColorOverrideByElement 属性该表单个元素的颜色。该属性要求一个元素集合作为参数,然后在指定视图中覆盖指定元素的投影线颜色。
我们曾经在博文 changing the colour of model or detail curves 中讨论过如何通过设置模型或者细节曲线的类别线风格来改变它们的颜色。
现在我们又遇到了另一个小问题:如何设置一个元素的颜色。为此 Joe Ye 给出了一个简单明确的回答。
提问:
如何通过编程方式改变一个注释符号的颜色?比方说标签?
回答:
通过编程方式,可以在指定视图中通过视图类的 ProjColorOverrideByElement 属性该表单个元素的颜色。该属性要求一个元素集合作为参数,然后在指定视图中覆盖指定元素的投影线颜色。
public void ChangeElementColor()
{
Application app = this.ActiveUIDocument.Application.Application;
UIDocument uidoc = this.ActiveUIDocument;
Document doc = uidoc.Document;
Color color = app.Create.NewColor();
color.Blue = ( byte ) 150;
color.Red = ( byte ) 200;
color.Green = ( byte ) 200;
Selection sel = uidoc.Selection;
Reference ref1 = sel.PickObject( ObjectType.Element, "Pick element to change its colour" );
Element elem = ref1.Element;
List<ElementId> ids = new List<ElementId>( 1 );
ids.Add( elem.Id );
Transaction trans = new Transaction( doc );
trans.Start( "ChangeColor" );
doc.ActiveView.set_ProjColorOverrideByElement( ids, color );
trans.Commit();
}