编程创建自定义线样式

来源:互联网 发布:不会c语言学java 编辑:程序博客网 时间:2024/05/17 09:43

转载请复制以下信息: 
原文链接: http://blog.csdn.net/joexiongjin/article/details/7846738
作者:  叶雄进 , Autodesk ADN


2012新增了样式创建功能,包括创建线型样式以及填充样式。这里重点说说线型样式的创建。

线型在Revit里有LinePatternElement类来表示。 


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

创建线型之后,可以把这个线型赋值给线样式。这里把一个线样式列表中的对象都进行修改线型。

 LinePatternElement myLinePatternElement = CreateLinePatternElement("MyLinePattern");            foreach (ElementId typeId in lstGridTypeIds)            {                Element gridType = doc.GetElement(typeId);                //set the parameter value of End Segment Pattern                SetParameter("End Segment Pattern", myLinePatternElement.Id, gridType);            }


给线样式对象赋值,把线型对象的ElementId赋值给线样式对象。

        private void SetParameter(string paramName, ElementId eid, Element elem)        {            foreach (Parameter param in elem.Parameters)            {                if (param.Definition.Name == paramName)                {                    Transaction trans = new Transaction(doc);                    trans.Start("Set parameter value");                    param.Set(eid);                    trans.Commit();                    break;                }            }        }









原创粉丝点击