# 临时图元
介绍
本章节主要介绍金枪鱼对临时图元 API
的支持;
# 创建临时图元
临时图元的创建允许传入一个或者一系列的图形对象,扩展方法将会把图形对象转换为一个整体的图元,并返回图元对应的 ElementId
//传入一个图形对象
document.TransientDisplay(Point.Create(new XYZ(10,10,10)));
//或者传入一个图形对象的集合
document.TransientDisplay(new List<GeometryObject>()
{
Point.Create(new XYZ(10,10,10)),
Point.Create(new XYZ(20,20,20)),
});
//允许添加对图形外观的设置
var gs = document.GetElements<GraphicsStyle>().FirstOrDefault(g => g.Name == "red");
document.TransientDisplay(Line.CreateBound(XYZ.Zero, XYZ.Zero + new XYZ(20, 20, 20)), gs.Id);
# 修改临时图元
通过返回的临时图元 ElementId
,可以对其外观或者图形样式进行二次修改。
//修改临时图元
ElementId id = document.TransientDisplay(Point.Create(new XYZ(10,10,10)));
document.ResetTransientElementGeometry(id, Line.CreateBound(new XYZ(), new XYZ(10,10,0)));
# 删除临时图元
对于创建好的临时图元,仅是保存在内存中,所以当文档关闭后,文档内的临时图元将被删除,如果希望主动删除临时图元,仅需要和往常一样,保存对图元的引用ElementId
并通过 Document
提供的方法 (opens new window)删除即可。
//清理所有临时图元
ElementId id = document.TransientDisplay(Point.Create(new XYZ(10,10,10)));
document.NewTransaction(()=>document.Delete(id));
当然,扩展包也提供对所有临时图元清除的功能。
//清理所有临时图元
document.CleanTransientElements();
← 单位转换(Unit) Ribbon 界面 →