编程创建自定义线样式

转载请复制以下信息: 
原文链接: 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;
                }
            }
        }









评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值