Example #1
0
        private void dnButtonCheckBox_Click(object sender, EventArgs e)
        {
            CheckBox cb = (CheckBox)sender;

            foreach (CheckBox checkBox in dnButtons)
            {
                if (checkBox.Checked && cb.Name != checkBox.Name)
                {
                    checkBox.Checked = false;
                }
            }

            string     dn     = string.Concat(cb.Text.Where(c => !char.IsWhiteSpace(c)));
            PipeDnEnum pipeDn = (PipeDnEnum)Enum.Parse(typeof(PipeDnEnum), dn);

            PipeTypeEnum fr = PipeTypeEnum.Frem;

            foreach (var frb in fremReturButtons)
            {
                if (frb.Checked)
                {
                    fr = (PipeTypeEnum)Enum.Parse(typeof(PipeTypeEnum), frb.Text);
                }
            }

            ActivateLayer(fr, pipeDn);
        }
        private void dnButtonCheckBox_Click(object sender, EventArgs e)
        {
            CheckBox cb = (CheckBox)sender;

            foreach (CheckBox checkBox in dnButtons)
            {
                if (checkBox.Checked && cb.Name != checkBox.Name)
                {
                    checkBox.Checked = false;
                }
            }

            string dn = string.Concat(cb.Text.Where(c => !char.IsWhiteSpace(c)));

            prdDbg(dn + "\n");
            PipeDnEnum pipeDn = (PipeDnEnum)Enum.Parse(typeof(PipeDnEnum), dn);

            prdDbg(pipeDn.ToString() + "\n");

            ActivateLayer(PipeTypeEnum.Twin, pipeDn);
        }
Example #3
0
        internal static void ActivateLayer(PipeTypeEnum pipeType, PipeDnEnum pipeDn)
        {
            DocumentCollection docCol  = Application.DocumentManager;
            Database           localDb = docCol.MdiActiveDocument.Database;
            Document           doc     = docCol.MdiActiveDocument;
            Editor             editor  = docCol.MdiActiveDocument.Editor;

            string layerName = string.Concat(
                "FJV-", pipeType.ToString(), "-", pipeDn.ToString()).ToUpper();

            using (DocumentLock docLock = doc.LockDocument())
                using (Transaction tx = localDb.TransactionManager.StartTransaction())
                {
                    try
                    {
                        LayerTable lt = localDb.LayerTableId.Go <LayerTable>(tx);
                        Oid        ltId;
                        if (!lt.Has(layerName))
                        {
                            LinetypeTable ltt = localDb.LinetypeTableId.Go <LinetypeTable>(tx);

                            LayerTableRecord ltr = new LayerTableRecord();
                            ltr.Name = layerName;
                            switch (pipeType)
                            {
                            case PipeTypeEnum.Twin:
                                ltr.Color = Color.FromColorIndex(ColorMethod.ByAci, 6);
                                break;

                            case PipeTypeEnum.Frem:
                                ltr.Color = Color.FromColorIndex(ColorMethod.ByAci, 1);
                                break;

                            case PipeTypeEnum.Retur:
                                ltr.Color = Color.FromColorIndex(ColorMethod.ByAci, 5);
                                break;

                            default:
                                break;
                            }
                            Oid continuous = ltt["Continuous"];
                            ltr.LinetypeObjectId = continuous;
                            ltr.LineWeight       = LineWeight.ByLineWeightDefault;

                            //Make layertable writable
                            lt.CheckOrOpenForWrite();

                            //Add the new layer to layer table
                            ltId = lt.Add(ltr);
                            tx.AddNewlyCreatedDBObject(ltr, true);
                        }
                        else
                        {
                            ltId = lt[layerName];
                        }

                        localDb.Clayer = ltId;

                        tx.Commit();
                    }
                    catch (System.Exception e)
                    {
                        prdDbg(e.ToString() + "\n");
                        tx.Abort();
                        return;
                    }
                }

            prdDbg(layerName + "\n");
        }