Autodesk.Revit.DB.AdaptiveComponentInstanceUtils
是Revit API中的类,用于操作自适应组件实例。
该类提供了一组静态方法和属性,用于创建、操作和查询自适应组件实例。
以下是该类的主要方法:
public static FamilyInstance PlaceAdaptiveComponent(
Document document,
ElementId familySymbolId,
List<Curve> curves,
List<XYZ> points,
AdaptiveComponentType type
)```
该方法用于在文档中放置一个自适应组件实例。需要指定要使用的族类型、一组参考线和控制点,以及自适应组件类型。
```C#
public static IList<XYZ> GetAdaptiveComponentInstancePoints(
FamilyInstance instance
)```
该方法用于获取自适应组件实例的控制点列表。
## 属性
以下是该类的主要属性:
`public static Guid AdaptiveComponentGuid { get; }`
该属性返回自适应组件实例的GUID。
## 示例
下面是创建自适应组件实例的示例代码:
```C#
// 获取文档
Document doc = commandData.Application.ActiveUIDocument.Document;
// 获取族符号和类型
FamilySymbol adaptiveSymbol = new FilteredElementCollector(doc)
.OfClass(typeof(FamilySymbol))
.OfCategory(BuiltInCategory.OST_GenericModel)
.FirstOrDefault(q => q.FamilyName == "Adaptive Component") as FamilySymbol;
AdaptiveComponentType compType = adaptiveSymbol.GetAdaptiveComponentType();
// 创建参考线和控制点
List<Curve> curves = new List<Curve> { Line.CreateBound(new XYZ(0, 0, 0), new XYZ(10, 0, 0)) };
List<XYZ> points = new List<XYZ> { new XYZ(5, 0, 0) };
// 放置自适应组件实例
FamilyInstance inst = AdaptiveComponentInstanceUtils.PlaceAdaptiveComponent(doc, adaptiveSymbol.Id, curves, points, compType);