Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        /// <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);
            }
        }
Ejemplo n.º 4
0
        /// <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);
        }