private object createSearchSet(object name, object category, object property, object value) { //https://adndevblog.typepad.com/aec/2012/08/add-search-selectionset-in-net.html Document doc = Autodesk.Navisworks.Api.Application.ActiveDocument; //Create a new search object Search s = new Search(); SearchCondition sc = SearchCondition.HasPropertyByDisplayName(category.ToString(), property.ToString()); s.SearchConditions.Add(sc.EqualValue(VariantData.FromDisplayString(value.ToString()))); //Set the selection which we wish to search s.Selection.SelectAll(); s.Locations = SearchLocations.DescendantsAndSelf; //halt searching below ModelItems which match this s.PruneBelowMatch = true; //get the resulting collection by applying this search ModelItemCollection searchResults = s.FindAll(Autodesk.Navisworks.Api.Application.ActiveDocument, false); SelectionSet selectionSet = new SelectionSet(); selectionSet.DisplayName = name.ToString(); selectionSet.CopyFrom(s); Autodesk.Navisworks.Api.Application.ActiveDocument.SelectionSets.InsertCopy(0, selectionSet); var ss = Autodesk.Navisworks.Api.Application.ActiveDocument.SelectionSets.ToSavedItemCollection(); return(ss); }