有客户问道:如何在创建详图线之前获取它的可用线型列表?目前只能通过API的过滤器来过滤类GraphicsStyle拿到所有的线型元素。
回答是:目前没有这样的API。
但是我们可以通过这个方法绕一下:
先创建一个详图线,回滚该事务(Roll back the Transaction),
代码如下:
Transaction transaction = new Transaction(RevitDoc,
"Create detail line");
transaction.Start();
try
{
var view = RevitDoc.ActiveView;
// make sure the view is 2D view
var modelLine = RevitDoc.Create.NewDetailCurve(view,
Line.CreateBound(new XYZ(0, 0, 0), new XYZ(10, 0, 0)));
var styles = modelLine.GetLineStyleIds();
foreach (var styleId in styles)
{
var styleEle = RevitDoc.GetElement(styleId);
WriteLog(styleId + ":" + styleEle.Name);
}
transaction.RollBack();
}
catch (Exception ex)
{
message = ex.ToString();
transaction.RollBack();
return Result.Failed;
}