public void Execute(object parameter) { var num = SelectionSetManager.NumSelected(); var currentSet = new List <Element>(); for (uint i = 0; i < num; i++) { Element elem = null; DgnModelRef dngModel = null; SelectionSetManager.GetElement(i, ref elem, ref dngModel); if (elem != null) { currentSet.Add(elem); } } if (currentSet.Count == 0) { MessageBox.Show("当前未选择任何元素...."); } else { MessageBox.Show(string.Format("当前已选择 {0} 个元素...", currentSet.Count)); } }
public static void ExportCesium3DTiles(string unparsed) { using (AssemblyResolver.Use()) { try { var view = Session.GetActiveViewport(); var hasSelectElements = SelectionSetManager.NumSelected() > 0; var appConfig = AppConfigManager.Load(); var dialog = new FormExport(view, appConfig, hasSelectElements, Titles.CESIUM_3D_TILES); dialog.ShowDialog(); } catch (Exception ex) { Log(ex.ToString()); } } }
public override List <string> GetSelectedObjects() { var objs = new List <string>(); if (Model == null) { return(objs); } uint numSelected = SelectionSetManager.NumSelected(); DgnModelRef modelRef = Session.Instance.GetActiveDgnModelRef(); for (uint i = 0; i < numSelected; i++) { Bentley.DgnPlatformNET.Elements.Element el = null; SelectionSetManager.GetElement(i, ref el, ref modelRef); objs.Add(el.ElementId.ToString()); } return(objs); }
public static void ExportSvfzip(string unparsed) { #if EXPRESS Log(@"Unsupported function: 'Export Svfzip'"); #else using (AssemblyResolver.Use()) { try { var view = Session.GetActiveViewport(); var hasSelectElements = SelectionSetManager.NumSelected() > 0; var appConfig = AppConfigManager.Load(); var dialog = new FormExport(view, appConfig, hasSelectElements, Titles.SVFZIP); dialog.ShowDialog(); } catch (Exception ex) { Log(ex.ToString()); } } #endif }
private void refreshSelection_() { Dictionary <IntPtr, Element> selectionSet = new Dictionary <IntPtr, Element>(); uint nums = SelectionSetManager.NumSelected(); for (uint i = 0; i < nums; ++i) { Element element = null; DgnModelRef modelRef = null; if (StatusInt.Success == SelectionSetManager.GetElement(i, ref element, ref modelRef) && element.ElementType == MSElementType.CellHeader && !selectionSet.ContainsKey(element.GetNativeElementRef())) { selectionSet.Add(element.GetNativeElementRef(), element); } } if (selectionSet.Count == 0) { unselectAll_(); } else { foreach (Element element in taskElemsToRows_.Keys) { if (!selectionSet.ContainsKey(element.GetNativeElementRef())) { unselectElement_(element); } } foreach (Element el in selectionSet.Values) { selectElement_(el); } } }
private void Addin_SelectionChangedEvent( AddIn sender, AddIn.SelectionChangedEventArgs eventArgs) { if (eventArgs.Action == lastSelectionAction_ && eventArgs.FilePosition == lastFilePos_) { return; } Dictionary <IntPtr, Element> selectionSet = new Dictionary <IntPtr, Element>(); uint nums = SelectionSetManager.NumSelected(); for (uint i = 0; i < nums; ++i) { Element element = null; DgnModelRef modelRef = null; if (StatusInt.Success == SelectionSetManager.GetElement(i, ref element, ref modelRef) && element.ElementType == MSElementType.CellHeader && !selectionSet.ContainsKey(element.GetNativeElementRef())) { selectionSet.Add(element.GetNativeElementRef(), element); } } try { switch ((int)eventArgs.Action) { case (int)AddIn.SelectionChangedEventArgs.ActionKind.SetEmpty: tasks_.Clear(); TaskSelection.Clear(); previewTranCon_.Reset(); break; case (int)AddIn.SelectionChangedEventArgs.ActionKind.SetChanged: { // remove unselected foreach (IntPtr ptr in tasks_.Keys) { if (!selectionSet.ContainsKey(ptr)) { tasks_.Remove(ptr); } } // add new TaskSelection.RaiseListChangedEvents = false; foreach (Element element in selectionSet.Values) { #if DEBUG //BCOM.Element comEl = ElementHelper.getElementCOM(element); //if (comEl.IsCompundCell()) //{ // var cell = comEl.AsCellElement(); // var cross = ElementHelper.createCrossRound(10, cell.Origin); // var pointEl = ElementHelper.createCircle(10, cell.Origin); // previewTranCon_.AppendCopyOfElement(pointEl); // previewTranCon_.AppendCopyOfElement(cross); //} #endif IntPtr elementRef = element.GetNativeElementRef(); PenetrVueTask task; if (PenetrVueTask.getFromElement(element, out task) && !tasks_.ContainsKey(elementRef)) { Logger.Log.Info($"Выбор объекта заадния {task.ToString()}"); tasks_.Add(elementRef, task); TaskSelection.Add(task); } } TaskSelection.RaiseListChangedEvents = true; break; } case 7: // ActionKind.Remove { foreach (IntPtr ptr in tasks_.Keys) { if (tasks_.ContainsKey(ptr)) { TaskSelection.Remove(tasks_[ptr]); tasks_.Remove(ptr); } } break; } case 5: // ActionKind.New: { TaskSelection.RaiseListChangedEvents = false; foreach (Element element in selectionSet.Values) { PenetrVueTask task; if (PenetrVueTask.getFromElement(element, out task)) { tasks_.Add(element.GetNativeElementRef(), task); TaskSelection.Add(task); } } TaskSelection.RaiseListChangedEvents = true; break; } } TaskSelection.ResetBindings(); OnPropertyChanged(NP.TaskSelection); } catch (Exception ex) { ex.AddToMessageCenter(); } finally { lastSelectionAction_ = eventArgs.Action; lastFilePos_ = eventArgs.FilePosition; } }