自适应族实例创建"/>
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自适应族实例创建
发布评论