Revit二次开发----分割族
来源:互联网 发布:医院机关哪好 知乎 编辑:程序博客网 时间:2024/05/16 19:18
**如有不明白,请qq254033230询问。**
其实在revit里是不存在分割族的概念。
对于基于线形的族,截面沿线都是一样,要想达到分割的状态,只需要把族基于线的那条线变短,然后再在分割点复制一个新的族即可。
过程是先获得线的均分点,然后把族的线缩短,接着再复制族,即可变成均分的效果。主要方法见代码:
private void DevideFamilyInstance(FamilyInstance famIns,int n, Document revitDoc) { LocationCurve locationCurve = famIns.Location as LocationCurve; XYZ stratPoint = locationCurve.Curve.GetEndPoint(0); XYZ endPoint = locationCurve.Curve.GetEndPoint(1); IList<XYZ> devidePoint = InsertPoint(stratPoint, endPoint,n); Transaction transaction = new Transaction(revitDoc); transaction.Start("将族复制到相应位置"); locationCurve.Curve = Line.CreateBound(stratPoint, devidePoint[0]); List<ElementId> list = new List<ElementId>(); list.Add(famIns.Id); ICollection<ElementId> elementIds = list; for (int j=1;j<n;j++) { XYZ tanslation = new XYZ(devidePoint[j - 1].X - stratPoint.X, devidePoint[j - 1].Y - stratPoint.Y, devidePoint[j - 1].Z - stratPoint.Z); ElementTransformUtils.CopyElements(revitDoc, elementIds, tanslation); } transaction.Commit(); } private List<XYZ> InsertPoint(XYZ stratPoint, XYZ endPoint,int n) { List<XYZ> listPoint = new List<XYZ>(); double x, y, z; for(int i=1;i<n;i++) { x = stratPoint.X+(endPoint.X- stratPoint.X)*i/n; y = stratPoint.Y + (endPoint.Y - stratPoint.Y) * i / n; z= stratPoint.Z + (endPoint.Z - stratPoint.Z) * i / n; XYZ point = new XYZ(x,y,z); listPoint.Add(point); }
阅读全文
0 0
- Revit二次开发----分割族
- Revit二次开发之“族”操作
- Revit二次开发之“族”操作
- Revit 二次开发
- revit二次开发“族”的思维导图
- revit二次开发——自适应构件族
- Revit 二次开发现状(2009)
- Revit 二次开发前景
- Revit 二次开发 - 开发资源
- <Revit二次开发>HelloWorld
- Revit二次开发首次使用
- revit二次开发,隔离构件
- Revit二次开发之入门
- Revit二次开发--"Hello World"
- Revit二次开发--过滤对象
- Revit二次开发曲线操作
- 如何开始Revit二次开发
- Revit二次开发 安装AddinManager
- Linux技巧:dos转unix文件格式方法
- eclipse实现代码折叠
- HDU 4283-You Are the One(区间DP)
- Docker网络——单host网络
- AI会让我们失业吗?
- Revit二次开发----分割族
- 数组求和的各种方法
- 6058 Kanade's sum
- varnish 学习笔记
- 2015多校第7场 HDU 5371 Segment Game 思维,Manacher算法
- gc 推荐参数
- 使用PS实现简单的名片制作
- IntelliJ 系列软件激活
- 通过配置文件my.ini修改mysql密码