AdaptiveComponentFamilyUtils Class


Adaptive Component Family Utils Class

An interface for Adaptive Component Instances.
Inheritance Hierarchy
System Object
Autodesk.Revit.DB AdaptiveComponentFamilyUtils

Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 25.0.0.0 (25.0.0.0)
Syntax
public static class AdaptiveComponentFamilyUtils

The AdaptiveComponentFamilyUtils type exposes the following members.

Methods
Name Description
Public method Static member GetNumberOfAdaptivePoints Gets number of Adaptive Point Elements in Adaptive Component Family.
Public method Static member GetNumberOfPlacementPoints Gets number of Placement Point Elements in Adaptive Component Family.
Public method Static member GetNumberOfShapeHandlePoints Gets number of Shape Handle Point Elements in Adaptive Component Family.
Public method Static member GetPlacementNumber Gets Placement number of an Adaptive Placement Point.
Public method Static member GetPointConstraintType Gets constrain type of an Adaptive Shape Handle Point.
Public method Static member GetPointOrientationType Gets orientation type of an Adaptive Placement Point.
Public method Static member IsAdaptiveComponentFamily Verifies if the Family is an Adaptive Component Family.
Public method Static member IsAdaptivePlacementPoint Verifies if the Reference Point is an Adaptive Placement Point.
Public method Static member IsAdaptivePoint Verifies if the Reference Point is an Adaptive Point.
Public method Static member IsAdaptiveShapeHandlePoint Verifies if the Reference Point is an Adaptive Shape Handle Point.
Public method Static member MakeAdaptivePoint Makes Reference Point an Adaptive Point or makes an Adaptive Point a Reference Point.
Public method Static member SetPlacementNumber Sets Placement Number of an Adaptive Placement Point.
Public method Static member SetPointConstraintType Sets constrain type of an Adaptive Shape Handle Point.
Public method Static member SetPointOrientationType Sets orientation type of an Adaptive Placement Point.
Top
Example
private void CreateAdaptiveComponentFamily(Document document)
{
    // check if this family is an Adaptive Component family
    if (!(AdaptiveComponentFamilyUtils.IsAdaptiveComponentFamily(document.OwnerFamily))) return;
    using (Transaction transaction = new Transaction(document))
    {
       int placementCtr = 1;
       ReferencePointArray refPointArray = new ReferencePointArray();
       for (int i = 0; i < 10; i++)
       {
           transaction.SetName("Point" + i);
           transaction.Start();
           ReferencePoint referencePoint = document.FamilyCreate.NewReferencePoint(new XYZ(i, 0, 0));
           if (i % 2 == 0)
           // Even-numbered reference points will be Placement Points
           {
               AdaptiveComponentFamilyUtils.MakeAdaptivePoint(document, referencePoint.Id, AdaptivePointType.PlacementPoint);
               transaction.Commit();
               AdaptiveComponentFamilyUtils.SetPlacementNumber(document, referencePoint.Id, placementCtr);
               placementCtr++;
           }
           else
           // Odd-numbered points will be Shape Handle Points
           {
               AdaptiveComponentFamilyUtils.MakeAdaptivePoint(document, referencePoint.Id, AdaptivePointType.ShapeHandlePoint);
               transaction.Commit();
           }
           refPointArray.Append(referencePoint);
       }
       // Create a curve running through all Reference Points
       if (transaction.GetStatus() == TransactionStatus.Committed)
       {
          transaction.SetName("Curve");
          transaction.Start();
          CurveByPoints curve = document.FamilyCreate.NewCurveByPoints(refPointArray);
          transaction.Commit();
       }
    }
}
See Also