Create Method


Creates a new instance of a divided surface with a default layout.

Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 2015.0.0.0 (2015.0.0.0)
Since: 2014

Syntax

C#
public static DividedSurface Create(
	Document document,
	Reference faceReference
)
Visual Basic
Public Shared Function Create ( _
	document As Document, _
	faceReference As Reference _
) As DividedSurface
Visual C++
public:
static DividedSurface^ Create(
	Document^ document, 
	Reference^ faceReference
)

Parameters

document
Type: Autodesk.Revit.DB Document
The document.
faceReference
Type: Autodesk.Revit.DB Reference
Reference that represents a face.

Return Value

The newly created divided surface.

Examples

Copy C#
public void DivideSurface(Document document, Form form)
{
    Autodesk.Revit.ApplicationServices.Application application = document.Application;
    Options opt = application.Create.NewGeometryOptions();
    opt.ComputeReferences = true;

    Autodesk.Revit.DB.GeometryElement geomElem = form.get_Geometry(opt);
    foreach (GeometryObject geomObj in geomElem)
    {
        Solid solid = geomObj as Solid;
        foreach (Face face in solid.Faces)
        {
            if (face.Reference != null)
            {
                DividedSurface ds = DividedSurface.Create(document,face.Reference);
                // create a divided surface with fixed number of U and V grid lines
                SpacingRule srU = ds.USpacingRule;
                srU.SetLayoutFixedNumber(16, SpacingRuleJustification.Center, 0, 0);

                SpacingRule srV = ds.VSpacingRule;
                srV.SetLayoutFixedNumber(24, SpacingRuleJustification.Center, 0, 0);

                break;  // just divide one face of form
            }
        }
    }
}
Copy VB.NET
Public Sub DivideSurface(document As Document, form As Form)
    Dim application As Autodesk.Revit.ApplicationServices.Application = document.Application
    Dim opt As Options = application.Create.NewGeometryOptions()
    opt.ComputeReferences = True

    Dim geomElem As Autodesk.Revit.DB.GeometryElement = form.Geometry(opt)
    For Each geomObj As GeometryObject In geomElem
        Dim solid As Solid = TryCast(geomObj, Solid)
        For Each face As Face In solid.Faces
            If face.Reference IsNot Nothing Then
                Dim ds As DividedSurface = DividedSurface.Create(document, face.Reference)
                ' create a divided surface with fixed number of U and V grid lines
                Dim srU As SpacingRule = ds.USpacingRule
                srU.SetLayoutFixedNumber(16, SpacingRuleJustification.Center, 0, 0)

                Dim srV As SpacingRule = ds.VSpacingRule
                srV.SetLayoutFixedNumber(24, SpacingRuleJustification.Center, 0, 0)

                ' just divide one face of form
                Exit For
            End If
        Next
    Next
End Sub

Exceptions

Exception Condition
Autodesk.Revit.Exceptions ArgumentException The document does not allow creation of a divided surface. -or- Reference is unstable import element -or- Reference does not represent a face -or- Reference already hosts a divided surface
Autodesk.Revit.Exceptions ArgumentNullException A non-optional argument was NULL
Autodesk.Revit.Exceptions InvalidOperationException The document is in failure mode: an operation has failed, and Revit requires the user to either cancel the operation or fix the problem (usually by deleting certain elements).
Autodesk.Revit.Exceptions ModificationForbiddenException The document is in failure mode: an operation has failed, and Revit requires the user to either cancel the operation or fix the problem (usually by deleting certain elements). -or- The document is being loaded, or is in the midst of another sensitive process.
Autodesk.Revit.Exceptions ModificationOutsideTransactionException The document has no open transaction.

See Also

ArchiLabs

Stop fighting Revit automation.

Build repeatable BIM design and documentation workflows with scripts, data, and AI in one place, without wrestling brittle one-off automations.

Try ArchiLabs →