本文整理汇总了C#中FilteredElementCollector.ToList方法的典型用法代码示例。如果您正苦于以下问题:C# FilteredElementCollector.ToList方法的具体用法?C# FilteredElementCollector.ToList怎么用?C# FilteredElementCollector.ToList使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FilteredElementCollector
的用法示例。
在下文中一共展示了FilteredElementCollector.ToList方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetElementViews
public static List<View> GetElementViews(
List<Element> a,
List<View> views)
{
List<View> returnViews = new List<View>();
foreach( View view in views )
{
FilteredElementCollector coll
= new FilteredElementCollector(
view.Document, view.Id );
coll = coll.WhereElementIsNotElementType();
List<Element> elementList = coll.ToList();
foreach( Element e1 in a )
{
Element e2 = elementList.Where(
x => x.Id == e1.Id )
.FirstOrDefault();
if( e2 != null
&& null == returnViews.Where(
x => x.Id == view.Id ).FirstOrDefault() )
{
returnViews.Add( view );
}
}
}
return returnViews;
}
示例2: OpeningElementOpenings
private static void OpeningElementOpenings(
Document doc, double minOpeningValue)
{
FilteredElementCollector openingCollector =
new FilteredElementCollector(doc);
openingCollector.OfClass(typeof(Opening));
// Get the IList for the collector - we cannot delete
// elements using a collector iterator
IList<Element> openings =
openingCollector.ToList<Element>();
foreach (Opening open in openings)
{
// Open the host wall
Wall wall = open.Host as Wall;
if (wall == null) continue; //safety
// Get the original area to compare
double previousArea = wall.get_Parameter(
BuiltInParameter.HOST_AREA_COMPUTED).AsDouble();
// Delete the wall opening
doc.Delete(open);
doc.Regenerate();
// Get the new area to compare
double newArea = wall.get_Parameter(
BuiltInParameter.HOST_AREA_COMPUTED).AsDouble();
// So the instance opening equals:
double instanceAreaOnTheWall =
(newArea - previousArea);
if (instanceAreaOnTheWall <= minOpeningValue)
AddWallArea(wall.Id, instanceAreaOnTheWall, 0.0);
else
AddWallArea(wall.Id, 0.0, instanceAreaOnTheWall);
}
}
示例3: GetTargetInstances
/// <summary>
/// Helper to get all instances for a given category,
/// identified either by a built-in category or by a category name.
/// </summary>
public static List<Element> GetTargetInstances(
Document doc,
object targetCategory)
{
List<Element> elements;
bool isName = targetCategory.GetType().Equals( typeof( string ) );
if( isName )
{
Category cat = doc.Settings.Categories.get_Item( targetCategory as string );
FilteredElementCollector collector = new FilteredElementCollector( doc );
collector.OfCategoryId( cat.Id );
elements = new List<Element>( collector );
}
else
{
FilteredElementCollector collector
= new FilteredElementCollector( doc )
.WhereElementIsNotElementType();
collector.OfCategory( (BuiltInCategory) targetCategory );
// I removed this to test attaching a shared
// parameter to Material elements:
//
//var model_elements = from e in collector
// where ( null != e.Category && e.Category.HasMaterialQuantities )
// select e;
//elements = model_elements.ToList<Element>();
elements = collector.ToList<Element>();
}
return elements;
}
示例4: FindView
/// <summary>
/// Get view by view name.
/// </summary>
/// <param name="doc">The document to find the view.</param>
/// <param name="activeViewName">The view name.</param>
/// <returns>The element id of the view found.</returns>
private ElementId FindView(Document doc, string activeViewName)
{
FilteredElementCollector collector = new FilteredElementCollector(doc);
collector.OfClass(typeof(RevitView));
IEnumerable<Element> selectedView = from view in collector.ToList<Element>()
where view.Name == activeViewName
select view;
if (selectedView.Count() > 0)
{
return (selectedView.First() as RevitView).Id;
}
return ElementId.InvalidElementId;
}