FieldDomainPointsByParameter Class


Represents a set of one-dimensional point coordinates (defined usually on curve)

Namespace: Autodesk.Revit.DB.Analysis
Assembly: RevitAPI (in RevitAPI.dll) Version: 21.0.0.0 (21.1.1.109)
Since: 2011

Syntax

C#
public class FieldDomainPointsByParameter : FieldDomainPoints
Visual Basic
Public Class FieldDomainPointsByParameter _
	Inherits FieldDomainPoints
Visual C++
public ref class FieldDomainPointsByParameter : public FieldDomainPoints

Examples

Copy C#
Document doc = commandData.Application.ActiveUIDocument.Document;
UIDocument uiDoc = commandData.Application.ActiveUIDocument;

SpatialFieldManager sfm = SpatialFieldManager.GetSpatialFieldManager(doc.ActiveView);
if (sfm == null)
{
    sfm = SpatialFieldManager.CreateSpatialFieldManager(doc.ActiveView, 1);
}

ReferenceArray ra = new ReferenceArray();
Reference curveRef = uiDoc.Selection.PickObject(ObjectType.Element, "Select a curve");
ra.Append(curveRef);

foreach (Reference reference in ra)
{
    ModelCurve modelCurve = doc.GetElement(reference) as ModelCurve;
    Curve curve = modelCurve.GeometryCurve;
    if (curve == null)
    {
        TaskDialog.Show("Error", "Must select a curve");
        return Result.Cancelled;
    }
    else
    {
        int idx = sfm.AddSpatialFieldPrimitive(curve.Reference);

        IList<double> pts = new List<double>();

        double u = curve.GetEndParameter(0);
        double range = curve.GetEndParameter(1) - u;
        for (int ii = 0; ii < 10; ii++)
        {
            pts.Add(u);
            u = u + range / 10;
        }

        FieldDomainPointsByParameter pnts = new FieldDomainPointsByParameter(pts);

        List<double> doubleList = new List<double>();
        IList<ValueAtPoint> valList = new List<ValueAtPoint>();
        double x = 0;
        while (valList.Count < pts.Count)
        //for (double x = 0; x < 1; x = x + 0.1)
        {
            doubleList.Clear();
            doubleList.Add(x * 10);
            valList.Add(new ValueAtPoint(doubleList));
            x = x + 0.1;
        }
        FieldValues vals = new FieldValues(valList);

        AnalysisResultSchema resultSchema = new AnalysisResultSchema("Schema Name", "Description");
        int schemaIndex = sfm.RegisterResult(resultSchema);
        sfm.UpdateSpatialFieldPrimitive(idx, pnts, vals, schemaIndex);
    }
}
Copy VB.NET
Dim doc As Document = commandData.Application.ActiveUIDocument.Document
Dim uiDoc As UIDocument = commandData.Application.ActiveUIDocument

Dim sfm As SpatialFieldManager = SpatialFieldManager.GetSpatialFieldManager(doc.ActiveView)
If sfm Is Nothing Then
   sfm = SpatialFieldManager.CreateSpatialFieldManager(doc.ActiveView, 1)
End If

Dim ra As New ReferenceArray()
Dim curveRef As Reference = uiDoc.Selection.PickObject(ObjectType.Element, "Select a curve")
ra.Append(curveRef)

For Each reference As Reference In ra
   Dim modelCurve As ModelCurve = TryCast(doc.GetElement(reference), ModelCurve)
   Dim curve As Curve = modelCurve.GeometryCurve
   If curve Is Nothing Then
      TaskDialog.Show("Error", "Must select a curve")
      Return Result.Cancelled
   Else
      Dim idx As Integer = sfm.AddSpatialFieldPrimitive(curve.Reference)

      Dim pts As IList(Of Double) = New List(Of Double)()

      Dim u As Double = curve.GetEndParameter(0)
      Dim range As Double = curve.GetEndParameter(1) - u
      For ii As Integer = 0 To 9
         pts.Add(u)
         u = u + range / 10
      Next

      Dim pnts As New FieldDomainPointsByParameter(pts)

      Dim doubleList As New List(Of Double)()
      Dim valList As IList(Of ValueAtPoint) = New List(Of ValueAtPoint)()
      Dim x As Double = 0
      While valList.Count < pts.Count
         'for (double x = 0; x < 1; x = x + 0.1)
         doubleList.Clear()
         doubleList.Add(x * 10)
         valList.Add(New ValueAtPoint(doubleList))
         x = x + 0.1
      End While
      Dim vals As New FieldValues(valList)

      Dim resultSchema As New AnalysisResultSchema("Schema Name", "Description")
      Dim schemaIndex As Integer = sfm.RegisterResult(resultSchema)
      sfm.UpdateSpatialFieldPrimitive(idx, pnts, vals, schemaIndex)
   End If
Next

Inheritance Hierarchy

System Object
Autodesk.Revit.DB.Analysis FieldDomainPoints
Autodesk.Revit.DB.Analysis FieldDomainPointsByParameter

See Also