private void CreateItems() { var item = TreeView.SelectedItem as ItemTreeViewItem; if (item == null) { return; } var databaseName = item.Item.ItemUri.DatabaseName; var logWindow = new ProjectLogWindow { Maximum = createItems.Count }; logWindow.AutoStart = delegate { var iterator = new ElementIterator <CreateItem>(createItems); iterator.Process = delegate(CreateItem element) { if (!element.IsChecked) { logWindow.Increment(); iterator.Next(); return; } if (element.ProjectItem == null) { element.ProjectItem = Add(element); } var projectItem = element.ProjectItem; ProcessedEventHandler callback = delegate(object sender, ProcessedEventArgs args) { WriteResult(logWindow, projectItem, args); logWindow.Increment(); iterator.Next(); }; element.Handler.Handle(databaseName, projectItem, element.ItemPath, callback); }; iterator.Finish = delegate { logWindow.Write(Rocks.Resources.Finished, string.Empty, string.Empty); logWindow.Finish(); }; iterator.Start(); }; AppHost.Shell.ShowDialog(logWindow); SaveProjects(); }
public Result Execute( ExternalCommandData commandData, ref string message, ElementSet elements) { UIApplication app = commandData.Application; Document doc = app.ActiveUIDocument.Document; #if _2010 List <Element> set = new List <Element>(); ParameterFilter f = app.Create.Filter.NewParameterFilter( _bipCode, CriteriaFilterType.NotEqual, string.Empty); ElementIterator it = doc.get_Elements(f); #endif using (StreamWriter sw = File.CreateText("C:/omni.txt")) { FilteredElementCollector collector = new FilteredElementCollector(doc); collector.WhereElementIsNotElementType(); // in 2011, we should probably add some more quick filters here ... // and make use of something like: //ParameterValueProvider provider = new ParameterValueProvider( new ElementId( Bip.SystemType ) ); //FilterStringRuleEvaluator evaluator = new FilterStringEquals(); //string ruleString = ParameterValue.SupplyAir; //FilterRule rule = new FilterStringRule( provider, evaluator, ruleString, false ); //ElementParameterFilter filter = new ElementParameterFilter( rule ); //collector.WherePasses( filter ); foreach (Element e in collector) { Parameter p = e.get_Parameter(_bipCode); if (null != p) { sw.WriteLine(string.Format( "{0} code {1} desc {2}", Util.ElementDescription(e), p.AsString(), e.get_Parameter(_bipDesc).AsString())); } } sw.Close(); } return(Result.Failed); }
public override void Execute(object parameter) { var selectedItems = GetSelectedItems(); if (selectedItems.Count == 0) { return; } GetUpdateItems(selectedItems); var logWindow = new ProjectLogWindow { Maximum = updateItems.Count }; logWindow.AutoStart = delegate { var iterator = new ElementIterator <UpdateItem>(updateItems); iterator.Process = delegate(UpdateItem element) { var projectItem = element.ProjectItem; projectItem.Update(delegate(object sender, ProcessedEventArgs args) { if (!args.Ignore) { logWindow.Write(projectItem.Path, args.Text, args.Comment); } logWindow.Increment(); iterator.Next(); }); }; iterator.Finish = delegate { logWindow.Write(Resources.Finished, string.Empty, string.Empty); logWindow.Finish(); }; iterator.Start(); }; AppHost.Shell.ShowDialog(logWindow); SaveProjects(); }
private void Add() { var logWindow = new ProjectLogWindow { Maximum = addItems.Count }; logWindow.AutoStart = delegate { var iterator = new ElementIterator <AddItem>(addItems); iterator.Process = delegate(AddItem element) { logWindow.Increment(); if (!element.IsChecked) { iterator.Next(); return; } var project = element.Project; var fileName = project.GetProjectItemFileName(element.Item); var projectItem = ProjectFileItem.Load(project, fileName); project.Add(projectItem); logWindow.Write(projectItem.Path, Rocks.Resources.AddWindow_Add_added, string.Empty); logWindow.Increment(); iterator.Next(); }; iterator.Finish = delegate { logWindow.Write(Rocks.Resources.Finished, string.Empty, string.Empty); logWindow.Finish(); }; iterator.Start(); }; AppHost.Shell.ShowDialog(logWindow); SaveProjects(); }
private void Commit() { var logWindow = new ProjectLogWindow { Maximum = commitItems.Count }; logWindow.AutoStart = delegate { var iterator = new ElementIterator <CommitItem>(commitItems); iterator.Process = delegate(CommitItem element) { if (!element.IsChecked) { logWindow.Increment(); iterator.Next(); return; } var projectItem = element.ProjectItem; projectItem.Commit(delegate(object sender, ProcessedEventArgs args) { WriteResult(logWindow, projectItem, args); logWindow.Increment(); iterator.Next(); }); }; iterator.Finish = delegate { logWindow.Write(Rocks.Resources.Finished, string.Empty, string.Empty); logWindow.Finish(); }; iterator.Start(); }; AppHost.Shell.ShowDialog(logWindow); SaveProjects(); }
private void Download([NotNull] List <ProjectItem> projectItems) { Debug.ArgumentNotNull(projectItems, nameof(projectItems)); var logWindow = new ProjectLogWindow { Maximum = projectItems.Count }; logWindow.AutoStart = delegate { var iterator = new ElementIterator <ProjectItem>(projectItems); iterator.Process = delegate(ProjectItem element) { element.Revert(delegate(object sender, ProcessedEventArgs args) { if (!args.Ignore) { if (args.Text == @"reverted") { args.Text = @"checked out"; } logWindow.Write(element.Path, args.Text, args.Comment); } logWindow.Increment(); iterator.Next(); }); }; iterator.Finish = delegate { logWindow.Write(@"Finished", string.Empty, string.Empty); logWindow.Finish(); }; iterator.Start(); }; AppHost.Shell.ShowDialog(logWindow); }
GetFilteredNestedFamilyDefinitions( string familyFileNameFilter, Document familyDocument, bool caseSensitiveFiltering) { // Following good SOA practices, verify the // incoming data can be worked with. ValidateFamilyDocument(familyDocument); // Throws an exception if not a family doc // The filter can be null, the filter matching function checks for that. #if _2010 List <Family> oResult = new List <Family>(); ElementIterator it = familyDocument.Elements; while (it.MoveNext()) { Element oElement = it.Current as Element; if ((oElement is Family) && FilterMatches(oElement.Name, familyFileNameFilter, caseSensitiveFiltering)) { oResult.Add(oElement as Family); } } #endif // _2010 FilteredElementCollector collector = new FilteredElementCollector(familyDocument); collector.OfClass(typeof(Family)); IEnumerable <Element> familiesMatching = from f in collector where FilterMatches(f.Name, familyFileNameFilter, caseSensitiveFiltering) select f; return(familiesMatching.Cast <Family>()); }
private void Exclude() { var logWindow = new ProjectLogWindow { Maximum = excludeItems.Count }; logWindow.AutoStart = delegate { var iterator = new ElementIterator <ExcludeItem>(excludeItems); iterator.Process = delegate(ExcludeItem element) { if (element.IsChecked) { var projectItem = element.ProjectItem; projectItem.Project.Remove(projectItem); logWindow.Write(projectItem.Path, Rocks.Resources.ExcludeWindow_Exclude_excluded, string.Empty); } logWindow.Increment(); iterator.Next(); }; iterator.Finish = delegate { logWindow.Write(Rocks.Resources.Finished, string.Empty, string.Empty); logWindow.Finish(); }; iterator.Start(); }; AppHost.Shell.ShowDialog(logWindow); SaveProjects(); }