private static ElementId GetDash(this Document doc) { var collector = new FilteredElementCollector(doc) .OfClass(typeof(LinePatternElement)) .ToElementIds().ToList(); foreach (var id in collector) { LinePatternElement lpe = doc.GetElement(id) as LinePatternElement; string name = lpe.Name; if (lpe.Name == "Dash") { return(lpe.Id); } } LinePattern lp = new LinePattern("Dash"); List <LinePatternSegment> Segments = new List <LinePatternSegment>(); Segments.Add(new LinePatternSegment(LinePatternSegmentType.Dash, 0.05)); Segments.Add(new LinePatternSegment(LinePatternSegmentType.Space, 0.05)); lp.SetSegments(Segments); LinePatternElement lped = LinePatternElement.Create(doc, lp); return(lped.Id); }
private static ElementId[] GetLineStyles(this Document doc) { ElementId[] eids = new ElementId[5]; var collector = new FilteredElementCollector(doc) .OfClass(typeof(LinePatternElement)) .ToElementIds().ToList(); bool[] check = new bool[5] { false, false, false, false, false }; foreach (var id in collector) { LinePatternElement lpe = doc.GetElement(id) as LinePatternElement; string name = lpe.Name; if (Names.Contains(name)) { check[Names.ToList().IndexOf(name)] = true; eids[Names.ToList().IndexOf(name)] = lpe.Id; } } if (!check[0]) { eids[0] = LinePatternElement.GetSolidPatternId(); } if (!check[1]) { TaskDialog.Show("Test", "Dash Trying to be Created"); LinePattern lp = new LinePattern("Dash"); lp.SetSegments(CreateDash()); LinePatternElement lpe = LinePatternElement.Create(doc, lp); eids[1] = lpe.Id; } if (!check[2]) { LinePattern lp = new LinePattern("Dot"); lp.SetSegments(CreateDot()); LinePatternElement lpe = LinePatternElement.Create(doc, lp); eids[2] = lpe.Id; } if (!check[3]) { LinePattern lp = new LinePattern("Center"); lp.SetSegments(CreateCenter()); LinePatternElement lpe = LinePatternElement.Create(doc, lp); eids[3] = lpe.Id; } if (!check[4]) { LinePattern lp = new LinePattern("Hidden"); lp.SetSegments(CreateHidden()); LinePatternElement lpe = LinePatternElement.Create(doc, lp); eids[4] = lpe.Id; } return(eids); }
/// <summary> /// 创建线型图案 CreatLinePattern /// </summary> /// <param name="doc"></param> /// <param name="patternName"></param> /// <returns></returns> public static LinePatternElement CreatLinePatternElement(Document doc, string patternName) { List <LinePatternSegment> lstSegments = new List <LinePatternSegment>(); lstSegments.Add(new LinePatternSegment(LinePatternSegmentType.Dot, 0.0)); lstSegments.Add(new LinePatternSegment(LinePatternSegmentType.Space, 0.02)); lstSegments.Add(new LinePatternSegment(LinePatternSegmentType.Dash, 0.03)); lstSegments.Add(new LinePatternSegment(LinePatternSegmentType.Space, 0.02)); LinePattern _linePattern = new LinePattern(patternName); _linePattern.SetSegments(lstSegments); using (Transaction trans = new Transaction(doc)) { trans.Start("Create a linepattern element"); LinePatternElement linePatternElement = LinePatternElement.Create(doc, _linePattern); trans.Commit(); return(linePatternElement); } }
/// <summary> /// Create a linepattern element /// </summary> /// <param name="patternName">The linepattern name</param> /// <returns>Created linepattern element</returns> private LinePatternElement CreateLinePatternElement(string patternName) { //Create list of segments which define the line pattern List <LinePatternSegment> lstSegments = new List <LinePatternSegment>(); lstSegments.Add(new LinePatternSegment(LinePatternSegmentType.Dot, 0.0)); lstSegments.Add(new LinePatternSegment(LinePatternSegmentType.Space, 0.02)); lstSegments.Add(new LinePatternSegment(LinePatternSegmentType.Dash, 0.03)); lstSegments.Add(new LinePatternSegment(LinePatternSegmentType.Space, 0.02)); LinePattern linePattern = new LinePattern(patternName); linePattern.SetSegments(lstSegments); Transaction trans = new Transaction(doc); trans.Start("Create a linepattern element"); LinePatternElement linePatternElement = LinePatternElement.Create(doc, linePattern); trans.Commit(); return(linePatternElement); }