CreateProfileStyle(string name) { CivilDocument civDoc = CivilApplication.ActiveDocument; ProfileStyleCollection profileStyles = civDoc.Styles.ProfileStyles; ObjectId idProfileStyle = ObjectId.Null; try { idProfileStyle = profileStyles.Add(name); } catch (System.Exception ex) { BaseObjs.writeDebug(string.Format("{0} Prof_Style.cs: line: 172", ex.Message)); } try { using (Transaction tr = BaseObjs.startTransactionDb()) { ProfileStyle oProfileStyle = (ProfileStyle)tr.GetObject(idProfileStyle, OpenMode.ForWrite); oProfileStyle.GetDisplayStyleProfile(ProfileDisplayStyleProfileType.Arrow).Visible = false; // set to yellow: oProfileStyle.GetDisplayStyleProfile(ProfileDisplayStyleProfileType.Line).Color = Color.FromColorIndex(ColorMethod.ByColor, 50); oProfileStyle.GetDisplayStyleProfile(ProfileDisplayStyleProfileType.Line).Visible = true; // grey oProfileStyle.GetDisplayStyleProfile(ProfileDisplayStyleProfileType.LineExtension).Color = Color.FromColorIndex(ColorMethod.ByColor, 251); oProfileStyle.GetDisplayStyleProfile(ProfileDisplayStyleProfileType.LineExtension).Visible = true; // green oProfileStyle.GetDisplayStyleProfile(ProfileDisplayStyleProfileType.Curve).Color = Color.FromColorIndex(ColorMethod.ByColor, 80); oProfileStyle.GetDisplayStyleProfile(ProfileDisplayStyleProfileType.Curve).Visible = true; // grey oProfileStyle.GetDisplayStyleProfile(ProfileDisplayStyleProfileType.ParabolicCurveExtension).Color = Color.FromColorIndex(ColorMethod.ByColor, 251); oProfileStyle.GetDisplayStyleProfile(ProfileDisplayStyleProfileType.ParabolicCurveExtension).Visible = true; // green oProfileStyle.GetDisplayStyleProfile(ProfileDisplayStyleProfileType.SymmetricalParabola).Color = Color.FromColorIndex(ColorMethod.ByColor, 81); oProfileStyle.GetDisplayStyleProfile(ProfileDisplayStyleProfileType.SymmetricalParabola).Visible = true; // green oProfileStyle.GetDisplayStyleProfile(ProfileDisplayStyleProfileType.AsymmetricalParabola).Color = Color.FromColorIndex(ColorMethod.ByColor, 83); oProfileStyle.GetDisplayStyleProfile(ProfileDisplayStyleProfileType.AsymmetricalParabola).Visible = true; // properties for 3D should also be set tr.Commit(); } } catch (System.Exception ex) { BaseObjs.writeDebug(string.Format("{0} Prof_Style.cs: line: 210", ex.Message)); } return(idProfileStyle); }
addWaterSurfaceProfile() { SelectionSet ss = Select.buildSSet(typeof(ProfileView), false, "Select Profile View"); if (ss == null || ss.Count == 0) { return; } ObjectId[] ids = ss.GetObjectIds(); ProfileView view = (ProfileView)ids[0].getEnt(); ObjectId idAlign = view.AlignmentId; Entity ent = idAlign.getEnt(); Prof.removeProfile(idAlign, "WSelev"); ObjectId idLayer = Layer.manageLayers("PF-HGL"); ObjectId idStyle = Prof_Style.getProfileStyle("WS"); try { using (Transaction tr = BaseObjs.startTransactionDb()) { ProfileStyle style = (ProfileStyle)tr.GetObject(idStyle, OpenMode.ForWrite); style.GetDisplayStyleProfile(ProfileDisplayStyleProfileType.Arrow).Visible = false; style.GetDisplayStyleProfile(ProfileDisplayStyleProfileType.Line).Visible = true; style.GetDisplayStyleProfile(ProfileDisplayStyleProfileType.Line).Layer = "PF-HGL"; style.GetDisplayStyleProfile(ProfileDisplayStyleProfileType.Line).LinetypeScale = 0.5; style.GetDisplayStyleProfile(ProfileDisplayStyleProfileType.LineExtension).Visible = false; tr.Commit(); } } catch (System.Exception ex) { BaseObjs.writeDebug(string.Format("{0} WSP_App.cs: line: 44", ex.Message)); } ObjectId idStyleLabelSet = Prof_Style.getProfileLabelSetStyle("None"); Profile prof = Prof.addProfileByLayout("WSelev", idAlign, idLayer, idStyle, idStyleLabelSet); string nameDwg = BaseObjs.docName; string defExt = "OUT"; string title = "Select WSPG output file"; string filter = "Text files (*.out)|*.out"; //filter="Text files (*.txt)|*.txt|All files (*.*)|*.*" string defPath = string.Format("{0}{1}", @"\\Brianw-civil3d\xdrive\", nameDwg.Substring(0, 4)); string nameFile = Dialog.OpenFileDialog(defExt, title, filter, defPath); StreamReader sr = new StreamReader(nameFile); bool start = false; string heading01 = "", heading02 = ""; while (!sr.EndOfStream) { string buf = sr.ReadLine(); if (buf.Contains("HEADING LINE NO 1")) { sr.ReadLine(); buf = sr.ReadLine(); heading01 = buf.Trim(); } if (buf.Contains("HEADING LINE NO 2")) { sr.ReadLine(); buf = sr.ReadLine(); heading02 = buf.Trim(); } } sr.Close(); List <double> pnts = new List <double>(); sr = new StreamReader(nameFile); double staPrior = 0.0; int k = -1; double resElev = 0; while (!sr.EndOfStream) { string buf = sr.ReadLine(); if (buf.Length >= 6) { if (buf.Substring(0, 5) == "*****") { start = true; buf = sr.ReadLine(); } } if (buf.Length >= 10) { if (buf.Substring(0, 9) == "LICENSEE:") { start = false; } } if (buf.Contains(heading01)) { start = false; } if (start) { if (buf.Length >= 38) { string elev = buf.Substring(27, 10); if (double.TryParse(elev, out resElev)) { k += 2; pnts.Add(double.Parse(buf.Substring(0, 10).Trim())); pnts.Add(double.Parse(buf.Substring(27, 10).Trim())); if (pnts[k - 1] == staPrior) { pnts[k - 1] += 0.05; } staPrior = pnts[k - 1]; } } } } sr.Close(); try { using (Transaction t = BaseObjs.startTransactionDb()) { for (int i = 0; i < pnts.Count; i += 2) { prof.PVIs.AddPVI(pnts[i], pnts[i + 1]); } t.Commit(); } } catch (System.Exception ex) { BaseObjs.writeDebug(string.Format("{0} WSP_App.cs: line: 125", ex.Message)); } }