Ejemplo n.º 1
0
        private void lBox_labels_zoomto_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                //check if the uesr in paper space if so swithc to model space
                Helper.ViewportExtensions.toggleModelspace();
                //MessageBox.Show("lBox_labels_zoomto_Click");
                GV.selLabels = new ObjectIdCollection();

                if (listView_styleComponentMapper.SelectedItems.Count > 0)
                {
                    List<Global.labelComponentItem> selectedItems = listView_styleComponentMapper.SelectedItems.Cast<Global.labelComponentItem>().ToList();

                    if (selectedItems[0].objID.ObjectClass.DxfName.ToString() == "MULTILEADER")
                    {
                        selectedItems = selectedItems.Reverse<Global.labelComponentItem>().Reverse().ToList();
                    }
                    foreach (Global.labelComponentItem item in listView_styleComponentMapper.SelectedItems)
                    {
                        GV.selLabels.Add(item.objID);
                    }
                    LCH.ZoomObjects(GV.selLabels);
                }

            }
            catch (System.Exception ee)
            {
                GH.writeLog(ee.ToString());
            }
        }
Ejemplo n.º 2
0
        private void lBox_labels_select_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                //check if the uesr in paper space if so swithc to model space
                Helper.ViewportExtensions.toggleModelspace();

                GV.selLabels = new ObjectIdCollection();

                if (listView_styleComponentMapper.SelectedItems.Count > 0)
                {
                    foreach (Global.labelComponentItem item in listView_styleComponentMapper.SelectedItems)
                    {
                        GV.selLabels.Add(item.objID);
                    }

                    ObjectId[] ids = new ObjectId[listView_styleComponentMapper.SelectedItems.Count];
                    GV.selLabels.CopyTo(ids, 0);
                    Utils.SelectObjects(ids);
                    LCH.ZoomObjects(GV.selLabels);
                }

            }
            catch (System.Exception ee)
            {
                GH.writeLog(ee.ToString());
            }
        }
Ejemplo n.º 3
0
        private void btn_CreateKeyNote_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                if (cBox_objectType.SelectedIndex >= 0)
                {
                    LCH.getCurrentDwgVars();
                    using (GV.Doc.LockDocument())
                    {
                        //get title
                        string objTypeSelected = cBox_objectType.SelectedItem.ToString();
                        GV.textHeight = Convert.ToDouble(tBox_textHeight.Text);
                        //get items
                        mTextLabel = "";

                        //key note heading
                        if (tBox_Heading.Text != "")
                        {
                            LCH.getCurrentFont();
                            if (btn_HeadingBold.IsChecked == true || btn_HeadingUnderline.IsChecked == true)
                            {
                                mTextLabel += "{";
                            }
                            if (btn_HeadingBold.IsChecked == true)
                            {
                                mTextLabel += "\\f" + GV.currentFont + "|b1;";
                            }

                            if (btn_HeadingUnderline.IsChecked == true)
                            {
                                mTextLabel += "\\L";
                            }

                            mTextLabel += tBox_Heading.Text + @"}\P";
                            mTextLabel  = mTextLabel.Replace(@"\\", @"\");
                        }
                        else
                        {
                            mTextLabel += tBox_Heading.Text + @" \P";
                        }

                        foreach (var item in GV.NotesCollection_Anno2[cBox_objectType.SelectedItem.ToString()])
                        {
                            mTextLabel += item.Key + GV.keynoteSeperator + item.Value + @" \P";
                        }

                        #region Create Keynote Text
                        if (!mTextLabel.Equals(string.Empty))
                        {
                            switch (GV.keynotetexttype)
                            {
                            case "mtext":
                            {
                                LCH.createMtextwithJIG(mTextLabel);
                            }
                            break;

                            default:
                            {
                                LCH.createMtextwithJIG(mTextLabel);
                            }
                            break;
                            }
                            #endregion
                        }
                    }
                }
                else
                {
                    UIH.toastIT("Notes not found.", "No Notes Found", NotificationType.Error);
                }
            }
            catch (Autodesk.Civil.CivilException ex)
            {
                GH.errorBox(ex.ToString());
            }
            catch (Autodesk.AutoCAD.Runtime.Exception ex)
            {
                GH.errorBox(ex.ToString());
            }
            catch (System.Exception ee)
            {
                GH.errorBox(ee.ToString());
            }
        }
Ejemplo n.º 4
0
        private void btn_learn_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                collIndex = 0;
                selObjs.Clear();
                LCH.getCurrentDwgVars();
                using (GV.Doc.LockDocument())
                {
                    //ask the user to pick a style to read about the style
                    //Seleciton options, with single selection
                    PromptSelectionOptions Options = new PromptSelectionOptions();
                    Options.SingleOnly = true;
                    //Options.SinglePickInSpace = true;
                    Autodesk.AutoCAD.Internal.Utils.SetFocusToDwgView();

                    PromptSelectionResult psRes = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor.GetSelection(Options, new SelectionFilter(LCH.selectionFilter(GV.labelFilterType)));

                    if (psRes.Status == PromptStatus.OK)
                    {
                        SelectionSet acSSet = psRes.Value;
                        GV.selObjects_forProcessing = acSSet.GetObjectIds();


                        foreach (ObjectId objID in GV.selObjects_forProcessing)
                        {
                            //get the name of the label
                            LI = new Global.labelComponentItem();
                            LI.styleName = LCH.getLabelName(objID);
                            LI.objType = LCH.getObjType(objID);
                            LI.objID = objID;
                            GV.ed.WriteMessage("LI.name: " + LI.styleName);
                            GV.ed.WriteMessage("LI.objType: " + LI.objType);

                            //get the component id which has the value 99
                            Dictionary<string, string> CompNameVals = new Dictionary<string, string>();
                            CompNameVals = Helper.LabelTextExtractor.getLabelValsAll(objID);

                            //get the location of the value and store it against the style name and id.
                            int i = 0;
                            LI.KNComponentID = new List<int>();
                            string KNLoc = "";

                            foreach (var item in CompNameVals)
                            {
                                if (item.Value == "99")
                                {
                                    LI.KNComponentID.Add(Convert.ToInt32(item.Key));
                                    KNLoc = item.Key + ",";
                                    i++;
                                }
                            }

                            //check if there is a comman at the end of the KN and remove that
                            KNLoc = KNLoc.Remove(KNLoc.Length - 1);

                            if (selObjs.Where(item => item.styleName == LI.styleName).Any() == false)
                            {
                                selObjs.Add(LI);
                            }
                            
                            //show this on the confirmation box - once the user confirms its then add to the list. or discard that item

                            tBox_styleName.Text = LI.styleName;
                            //tBox_styleKNloc.Text = KNLoc;

                            // ask the user to pick the mapper configuration 

                            //store the configuration to settings file

                        }

                        grid_addStyle.Visibility = System.Windows.Visibility.Visible;
                    }
                }
            }
            catch (System.Exception ex)
            { GH.writeLog(ex.ToString()); }
        }
Ejemplo n.º 5
0
        private void ProcessLabels()
        {
            try
            {
                int index    = 1;
                int objCount = GV.selObjects_forProcessing.Count();
                GV.pBarMaxVal = objCount;
                Dictionary <string, string> labelVals = new Dictionary <string, string>();
                Dictionary <string, string> noteItems;
                List <string> SSTList = new List <string>();
                foreach (ObjectId objID in GV.selObjects_forProcessing)
                {
                    // get the style name from the label
                    string styleName = LCH.getLabelName(objID);
                    SSTList = GH.getSST(styleName);
                    if (SSTList != null)
                    {
                        string notetype = SSTList[1];
                        labelVals = Helper.LabelTextExtractor.getLabelValsAll(objID);
                        //get the KN values based on the locations
                        foreach (var KNloc in SSTList[2].ToString())
                        {
                            #region Add the notes to the collection
                            // add note type if its not there add it to the collection
                            if (!GV.NotesCollection_Anno2.ContainsKey(notetype))
                            {
                                noteItems = new Dictionary <string, string>();
                                GV.NotesCollection_Anno2.Add(notetype, noteItems);
                            }

                            //check if that note number is already in the collection.
                            noteItems = GV.NotesCollection_Anno2[notetype]; //get the note item for the specific note type

                            if (labelVals.ContainsKey(KNloc.ToString()))
                            {
                                string noteNum = labelVals[KNloc.ToString()]; //get the note number based on the KN location
                                                                              //check if that note type is available in the template file
                                if (GV.notesDict.ContainsKey(notetype))
                                {
                                    Dictionary <int, string> innetDict = new Dictionary <int, string>();
                                    innetDict = GV.notesDict[notetype];
                                    //check if the value exists inthe inner dict
                                    if (innetDict.ContainsKey(Convert.ToInt32(noteNum)) && !noteItems.ContainsKey(noteNum))
                                    {
                                        noteItems.Add(noteNum, innetDict[Convert.ToInt32(noteNum)]);
                                    }
                                }
                            }
                            #endregion
                        }
                    }
                    //get the notes from the notelist files and add it based on the KN values

                    #region ProgressBAR

                    GH.printDebug("", "", false, true);
                    GV.pBarStatus = "Labels Processed: " + index + @"/" + objCount;
                    UpdateProgressBar(index, objCount, GV.pBarStatus);
                    //GV.pmeter.MeterProgress();
                    Helper.UIHelper.DoEvents();

                    GV.pBarCurrentVal = index;

                    //assign it work
                    //bw.ReportProgress(index);
                    index++;
                    #endregion
                }
            }
            catch (Autodesk.Civil.CivilException ex)
            {
                GH.errorBox(ex.ToString());
            }
            catch (Autodesk.AutoCAD.Runtime.Exception ex)
            {
                GH.errorBox(ex.ToString());
            }
            catch (System.Exception ee)
            {
                GH.errorBox(ee.ToString());
            }
        }
Ejemplo n.º 6
0
        private void btn_selectLabels_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                //check if defnition and  note list are selected
                if (checkifDefnitionsSelected())
                {
                    //rest progressbar
                    proBar.Value = 0;


                    using (GV.Doc.LockDocument())
                    {
                        PromptSelectionResult psRes = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor.GetSelection(new SelectionFilter(LCH.selectionFilter(GV.labelFilterType)));

                        if (psRes.Status == PromptStatus.OK)
                        {
                            SelectionSet acSSet = psRes.Value;
                            GV.selObjects_forProcessing = acSSet.GetObjectIds();

                            //get key notes based on the selection

                            bw.WorkerSupportsCancellation = true;
                            bw.WorkerReportsProgress      = true;
                            //bw.ProgressChanged += bw_ProgressChanged;
                            bw.DoWork += new DoWorkEventHandler(bw_UpdateProgressBar);
                            //start work
                            if (bw.IsBusy != true)
                            {
                                bw.RunWorkerAsync();
                            }

                            ProcessLabels();

                            updateUIdata();

                            UIH.toastIT("All selected labels processed successfully!", "Status", NotificationType.Success);
                        }
                    }
                }
            }
            catch (Autodesk.Civil.CivilException ex)
            {
                GH.errorBox(ex.ToString());
            }
            catch (Autodesk.AutoCAD.Runtime.Exception ex)
            {
                GH.errorBox(ex.ToString());
            }
            catch (System.Exception ee)
            {
                GH.errorBox(ee.ToString());
            }
        }
Ejemplo n.º 7
0
        private void btn_selectLabel_SST_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                LCH.getCurrentDwgVars();
                //rest progressbar
                proBar.Value = 0;
                GV.all_label_coll.Clear();
                clearUIValues();
                GV.clearSelection();
                tBox_Heading.Text = "";

                //read the label get the label name and KN values based on the KN location from SST file
                using (GV.Doc.LockDocument())
                {
                    GH.writeLog("\n Running command : btn_selectLabels_Click");

                    PromptSelectionResult psRes = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor.GetSelection(new SelectionFilter(LCH.selectionFilter(GV.labelFilterType)));

                    if (psRes.Status == PromptStatus.OK)
                    {
                        SelectionSet acSSet = psRes.Value;
                        GV.selObjects_forProcessing = acSSet.GetObjectIds();
                        GH.qprint("Number of objects selected: " + psRes.Value.Count);
                        GH.writeLog("\nNumber of objects selected: " + psRes.Value.Count);
                    }

                    bw.WorkerSupportsCancellation = true;
                    bw.WorkerReportsProgress      = true;
                    //bw.ProgressChanged += bw_ProgressChanged;
                    bw.DoWork += new DoWorkEventHandler(bw_UpdateProgressBar);
                    //start work
                    if (bw.IsBusy != true)
                    {
                        bw.RunWorkerAsync();
                    }
                    //check the label name against the SST file and type of label
                    int index = 1;

                    int objCount = GV.selObjects_forProcessing.Count();
                    GV.pBarMaxVal = objCount;

                    //GV.pmeter.Start("Processing Labels");
                    //GV.pmeter.SetLimit(objCount);


                    foreach (ObjectId objID in GV.selObjects_forProcessing)
                    {
                        LCH.getlabelvalueSpecific(objID);
                        //go to note list and get the note for the respective KN number that
                    }
                }
            }
            catch (Autodesk.Civil.CivilException ex)
            {
                GH.errorBox(ex.ToString());
            }
            catch (Autodesk.AutoCAD.Runtime.Exception ex)
            {
                GH.errorBox(ex.ToString());
            }
            catch (System.Exception ee)
            {
                GH.errorBox(ee.ToString());
            }
        }
Ejemplo n.º 8
0
        private void btn_selectViewport_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                clearUIValues();
                if (checkifDefnitionsSelected())
                {
                    cBox_objectType.ItemsSource = null;
                    lBox_labels.ItemsSource     = null;
                    GV.clearSelection();
                    GV.all_label_coll.Clear();
                    tBox_Heading.Text = "";

                    //rest progressbar
                    proBar.Value = 0;

                    //MyCommands.vpshp();

                    //GV.Doc.SendStringToExecute("vpshp", true, false, false);

                    LCH.getCurrentDwgVars();
                    #region main
                    using (GV.Doc.LockDocument())
                    {
                        short val = (short)AcAp.GetSystemVariable("CVPORT");
                        if (val != 1)
                        {
                            GV.processStatus = false;
                            UIH.toastIT("This option works only in Paperspace (Layouts), please swtich to paperspace and try again!", "Viewport Not Preset", NotificationType.Error);
                        }
                        else
                        {
                            Helper.ViewportExtensions.getvPortCoordinatesADV();

                            if (GV.processStatus == true && GV.selObjects_forProcessing != null)
                            {
                                bw.WorkerSupportsCancellation = true;
                                bw.WorkerReportsProgress      = true;
                                //bw.ProgressChanged += bw_ProgressChanged;
                                bw.DoWork += new DoWorkEventHandler(bw_UpdateProgressBar);
                                //start work
                                if (bw.IsBusy != true)
                                {
                                    bw.RunWorkerAsync();
                                }
                                int index    = 1;
                                int objCount = GV.selObjects_forProcessing.Count();
                                GV.pBarMaxVal = objCount;

                                foreach (ObjectId objID in GV.selObjects_forProcessing)
                                {
                                    LCH.getlabelvalueSpecific(objID);

                                    #region ProgressBAR

                                    GH.printDebug("", "", false, true);
                                    GV.pBarStatus = "Labels Processed: " + index + @"/" + objCount;
                                    UpdateProgressBar(index, objCount, GV.pBarStatus);
                                    //GV.pmeter.MeterProgress();
                                    Helper.UIHelper.DoEvents();

                                    GV.pBarCurrentVal = index;

                                    //assign it work
                                    index++;
                                    #endregion
                                }
                                updateUIdata();

                                UIH.toastIT("All selected labels processed successfully!", "Status", NotificationType.Success);
                            }
                        }
                    }
                    #endregion
                }
                else
                {
                    UIH.toastIT("Check if defintion and note files are selected!", "Missing defintion/note file", NotificationType.Error);
                }
            }
            catch (Autodesk.Civil.CivilException ex)
            {
                GH.errorBox(ex.ToString());
            }
            catch (Autodesk.AutoCAD.Runtime.Exception ex)
            {
                GH.errorBox(ex.ToString());
            }
            catch (System.Exception ee)
            {
                GH.errorBox(ee.ToString());
            }
        }
Ejemplo n.º 9
0
        private void btn_selectLabels_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                //check if defnition and  note list are selected
                if (checkifDefnitionsSelected())
                {
                    //rest progressbar
                    proBar.Value = 0;
                    GV.all_label_coll.Clear();
                    clearUIValues();
                    GV.clearSelection();
                    tBox_Heading.Text = "";

                    LCH.getCurrentDwgVars();
                    using (GV.Doc.LockDocument())
                    {
                        GH.writeLog("\n Running command : btn_selectLabels_Click");

                        PromptSelectionResult psRes = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor.GetSelection(new SelectionFilter(LCH.selectionFilter(GV.labelFilterType)));

                        if (psRes.Status == PromptStatus.OK)
                        {
                            SelectionSet acSSet = psRes.Value;
                            GV.selObjects_forProcessing = acSSet.GetObjectIds();
                            GH.qprint("Number of objects selected: " + psRes.Value.Count);
                            GH.writeLog("\nNumber of objects selected: " + psRes.Value.Count);

                            //get key notes based on the selection
                            #region process labels Styles
                            bw.WorkerSupportsCancellation = true;
                            bw.WorkerReportsProgress      = true;
                            //bw.ProgressChanged += bw_ProgressChanged;
                            bw.DoWork += new DoWorkEventHandler(bw_UpdateProgressBar);
                            //start work
                            if (bw.IsBusy != true)
                            {
                                bw.RunWorkerAsync();
                            }


                            int index = 1;

                            int objCount = GV.selObjects_forProcessing.Count();
                            GV.pBarMaxVal = objCount;

                            //GV.pmeter.Start("Processing Labels");
                            //GV.pmeter.SetLimit(objCount);


                            foreach (ObjectId objID in GV.selObjects_forProcessing)
                            {
                                LCH.getlabelvalueSpecific(objID);

                                #region ProgressBAR

                                GH.printDebug("", "", false, true);
                                GV.pBarStatus = "Labels Processed: " + index + @"/" + objCount;
                                UpdateProgressBar(index, objCount, GV.pBarStatus);
                                //GV.pmeter.MeterProgress();
                                Helper.UIHelper.DoEvents();

                                GV.pBarCurrentVal = index;

                                //assign it work
                                //bw.ReportProgress(index);
                                index++;
                                #endregion
                            }
                            //GV.pmeter.Stop();
                            //LCH.getlabelvalues();
                            //LCH.getlabelvalues(acSSet.GetObjectIds(), trans);
                            updateUIdata();

                            UIH.toastIT("All selected labels processed successfully!", "Status", NotificationType.Success);
                            #endregion
                        }
                    }
                }
                else
                {
                    UIH.toastIT("Check if defintion and note files are selected!", "Missing defintion/note file", NotificationType.Error);
                }
            }
            catch (Autodesk.Civil.CivilException ex)
            {
                GH.errorBox(ex.ToString());
            }
            catch (Autodesk.AutoCAD.Runtime.Exception ex)
            {
                GH.errorBox(ex.ToString());
            }
            catch (System.Exception ee)
            {
                GH.errorBox(ee.ToString());
            }
        }