首页 > 其他 > 详细

Revit获取当前视图中的过滤器,或者说图形替换中的过滤器

时间:2019-11-20 16:57:50      阅读:183      评论:0      收藏:0      [点我收藏+]

View view = doc.ActiveView;

var filterIds = view.GetFilters();//获取所有过滤器

foreach (ElementId id in filterIds)
{
ParameterFilterElement filter1 = doc.GetElement(id) as ParameterFilterElement;
if (filter1 == null) continue;
if (filter1.IsValidObject)
{
OverrideGraphicSettings ogs = view.GetFilterOverrides(id);//这个对象上就能获取到颜色,线型等属性
if (ogs == null) continue;

}

}

 

/// <summary>
/// 投影线宽
/// </summary>
/// <param name="ogs"></param>
/// <returns></returns>
public string GetProjectionLineWeight(OverrideGraphicSettings ogs)
{
string lineWeight = "<无替换>";
if (ogs.ProjectionLineWeight != -1) lineWeight = ogs.ProjectionLineWeight.ToString();
return lineWeight;
}

/// <summary>
/// 投影线颜色
/// </summary>
/// <param name="ogs"></param>
/// <returns></returns>
public string GetProjectionLineColor(OverrideGraphicSettings ogs)
{
string lineColor = "<无替换>";
if (ogs.ProjectionLineColor.IsValid)
{
Color rgb = ogs.ProjectionLineColor;
lineColor = " " + rgb.Red.ToString() + ‘ ‘ + rgb.Green.ToString() + ‘ ‘ + rgb.Blue.ToString();
}
return lineColor;
}

/// <summary>
/// 投影线样式
/// </summary>
/// <param name="ogs"></param>
/// <param name="doc"></param>
/// <returns></returns>
public string GetProjectionLinePattern(OverrideGraphicSettings ogs, Document doc)
{
string linePatternName = "<无替换>";

ElementId patternId = ogs.ProjectionLinePatternId;

if (patternId.IntegerValue != -1)
{
if (patternId.IntegerValue == -3000010)
{
 linePatternName = "实线";
 }
else
 {
linePatternName = LinePatternElement.GetLinePattern(doc, patternId).Name;
 }

return linePatternName ;
}

 

Revit获取当前视图中的过滤器,或者说图形替换中的过滤器

原文:https://www.cnblogs.com/370826chen/p/11898629.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!