效果:

自适应族在Revit中应用很广泛,而且自由度很高。某一些构件如果通过代码来构建是非常麻烦的,(例如一个桥墩怎么可能通过代码来建呢,就直接建好,载入到项目中,并设定好点位的位置,通过调整参数的形式来做一些调整)。那么在这里写一下如何载入自适应族并放置到指定位置。
代码:
思路:
- 创建实例,并获取自适应族的自适应点
- 取得各个自适应点的参照点
- 给参照点设置他们应该在的位置
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版权协议,转载请附上原文出处链接和本声明。