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); }
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"); }