RevitAPI: 创建详图线之前获取可用线型列表

有客户问道:如何在创建详图线之前获取它的可用线型列表?目前只能通过API的过滤器来过滤类GraphicsStyle拿到所有的线型元素。

RevitAPI: 创建详图线之前获取可用线型列表_第1张图片

回答是:目前没有这样的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;
}


你可能感兴趣的:(RevitAPI,Element)