Revit二次开发——自适应族载入放置

效果:

在这里插入图片描述

自适应族在Revit中应用很广泛,而且自由度很高。某一些构件如果通过代码来构建是非常麻烦的,(例如一个桥墩怎么可能通过代码来建呢,就直接建好,载入到项目中,并设定好点位的位置,通过调整参数的形式来做一些调整)。那么在这里写一下如何载入自适应族并放置到指定位置。

代码:

思路:

  1. 创建实例,并获取自适应族的自适应点
  2. 取得各个自适应点的参照点
  3. 给参照点设置他们应该在的位置
        private void createWindBrace(List<XYZ> points, FamilySymbol FamilySymbol, ExternalCommandData commandData)
        {
            UIDocument uiDoc = commandData.Application.ActiveUIDocument;           //取得当前活动文档    

            //创建实例,并获取其自适应点列表
            FamilyInstance familyInstance = AdaptiveComponentInstanceUtils.CreateAdaptiveComponentInstance(uiDoc.Document, FamilySymbol);
            IList<ElementId> adaptivePoints = AdaptiveComponentInstanceUtils.GetInstancePlacementPointElementRefIds(familyInstance);

            for (int i = 0; i < points.Count; i += 1)
            {
                //取得的参照点
                ReferencePoint referencePoint = uiDoc.Document.GetElement(adaptivePoints[i]) as ReferencePoint;
                //设置参照点坐标
                referencePoint.Position = points[i];
            }
        }

备忘:

普通族的实例创建通过NewFamilyInstance ()方法创建,不同类型的族选用不同的参数,只有自适应族是最特殊的。


版权声明:本文为weixin_46264455原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。