/// <summary>
/// 获取线样式类型
/// </summary>
/// <param name="doc"></param>
/// <returns></returns>
public static List<GraphicsStyle> GetLineStyles(this Document doc)
{
List<GraphicsStyle> result = new List<GraphicsStyle>();
var styles = doc.GetElements<GraphicsStyle>();
Category lineCategory = null;
foreach (var g in styles)
{
if (g.GraphicsStyleCategory != null)
{
var category = g.GraphicsStyleCategory.Parent;
if (category != null)
{
BuiltInCategory bic = (BuiltInCategory)category.Id.IntegerValue;
if (bic == BuiltInCategory.OST_Lines)
{
lineCategory = category;
break;
}
}
}
}
if (lineCategory != null)
{
foreach (Category obj in lineCategory.SubCategories)
{
BuiltInCategory integerValue = (BuiltInCategory)obj.Id.IntegerValue;
if (integerValue == BuiltInCategory.OST_GenericLines ||
integerValue == BuiltInCategory.OST_CenterLines ||
integerValue == BuiltInCategory.OST_DemolishedLines ||
integerValue == BuiltInCategory.OST_OverheadLines ||
integerValue == BuiltInCategory.OST_LinesBeyond ||
integerValue == BuiltInCategory.OST_HiddenLines ||
integerValue == BuiltInCategory.OST_CurvesMediumLines ||
integerValue == BuiltInCategory.OST_CurvesWideLines ||
integerValue == BuiltInCategory.OST_CurvesThinLines ||
integerValue == BuiltInCategory.OST_LinesHiddenLines)
{
GraphicsStyle gs = obj.GetGraphicsStyle(GraphicsStyleType.Projection);
result.Add(gs);
}
if (obj.Id.IntegerValue > 0)
{
GraphicsStyle gs = obj.GetGraphicsStyle(GraphicsStyleType.Projection);
result.Add(gs);
}
}
}
return result.OrderBy(f => f.Name).ToList();
}
revit二次开发 获取模型线可用的线样式
猜你喜欢
转载自blog.csdn.net/zouzouol/article/details/82668184
今日推荐
周排行