Revit自适应族实例创建

编程入门 行业动态 更新时间:2024-10-08 18:32:04

Revit<a href=https://www.elefans.com/category/jswz/34/1769425.html style=自适应族实例创建"/>

Revit自适应族实例创建

Revit二次开发创建自适应族实例


一、AdaptiveComponentFamilyUtils类:
自适应是用于设计自适应填充图案构件的修改参照点,其族属于AdaptiveComponentFamilyUtils类内含以下几种运用方式:

  • GetNumberOfAdaptivePoints :获取自适应组件族中自适应点元素的个数。

  • GetNumberOfPlacementPoints:获取自适应组件族中放置点元素的数量。

  • GetNumberOfShapeHandlePoints:获取自适应组件族中形状句柄点元素的数量。

  • GetPlacementNumber:获取自适应放置点的放置编号。

  • GetPointConstraintType:获取自适应形状句柄点的约束类型。

  • IsAdaptiveComponentFamily:验证族是否为自适应组件族。

  • IsAdaptivePlacementPoint:验证族是否为自适应放置点。

  • IsAdaptivePoint:验证族是否为自适点。

  • IsAdaptiveShapeHandlePoint:是参考点车位自适应点或者自适应点成为参考点。

  • SetPlacementNumber:设置自适应点的放置编号。

  • SetPointConstraintType:设置自适应点的约束类型。

  • SetPointOrientationType:设置自适应放置点的方向
    二、AdaptiveComponentInstanceUtils类:

  • CreateAdaptiveComponentInstance:创建自适应族实例;

  • GetInstancePlacementPointElementRefIds:获取自适应点放置过程中控制点元素参照点Id;

  • GetInstancePointElementRefIds:获取实例自适应点元素参照点Id;

  • GetInstanceShaeHandlePointElementRefIds:获取句柄点参照Id;

  • HasAdaptiveFamilySymbol:是否具有自适应族类型;

  • IsAdaptiveFamilySymbol:是否是自适应族类型;

  • IsAdaptiveComponentInstance:是否是自适应族实例;

  • IsInstanceFlipped:判断该实例是否翻转;

  • MoveAdaptiveComponentInstance:移动自适应构件;

  • SetInstanceFlipped:设置自适应翻转参数值;
    三、专有名词解释: (自适应构件中存在三种点:参照点、自适应点、句柄控制点)

  • 参照点:族放置过程及结束后都无法参控族;

  • 自适应点:族放置过程作为放置点,放置结束后仍可以参控族;

  • 句柄控制点:族放置过程中不作为放置点,放置结束后可作为参控点控制族;

四、自适应族创建:

           //当前用户界面的文档UIDocument uiDoc = commandData.Application.ActiveUIDocument;//取得revit内部文档Document doc = uiDoc.Document;using (Transaction trans = new Transaction(doc)){trans.Start("创建自适应族");//获取自适应族类型FamilySymbol famSy= doc.GetElement(new ElementId(339728)) as FamilySymbol;//创建自适应族实例FamilyInstance fam = AdaptiveComponentInstanceUtils.CreateAdaptiveComponentInstance(doc, famSy);//获取自适应族的位置放置参照点IList<ElementId> placePointIds = AdaptiveComponentInstanceUtils.GetInstancePlacementPointElementRefIds(fam);//设置自适应放置点的位置ReferencePoint point1 = doc.GetElement(placePointIds[0]) as ReferencePoint;point1.Position = new XYZ(0, 100 / 304.8, 0);ReferencePoint point2 = doc.GetElement(placePointIds[1]) as ReferencePoint;point2.Position = new XYZ(500 / 304.8, 200 / 304.8, 0);ReferencePoint point3 = doc.GetElement(placePointIds[2]) as ReferencePoint;point3.Position = new XYZ(100 / 304.8, 500 / 304.8, 0);ReferencePoint point4 = doc.GetElement(placePointIds[3]) as ReferencePoint;point4.Position = new XYZ(0, 200 / 304.8, 100 / 304.8);trans.Commit();}

诚邀各位同仁加入福建BIM二开交流群(QQ群号:1101645004)与小编一起探讨二次开发相关内容,一起助力BIM信息化发展!

更多推荐

Revit自适应族实例创建

本文发布于:2024-02-06 08:21:54,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1747376.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:自适应   实例   Revit

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!