DividedSurface.Create Method

DividedSurfaceCreate Method

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

Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 25.0.0.0 (25.0.0.0)
Syntax
public static DividedSurface Create(
	Document document,
	Reference faceReference
)
Public Shared Function Create ( 
	document As Document,
	faceReference As Reference
) As DividedSurface
public:
static DividedSurface^ Create(
	Document^ document, 
	Reference^ faceReference
)
static member Create : 
        document : Document * 
        faceReference : Reference -> DividedSurface 

Parameters

document  Document
The document.
faceReference  Reference
Reference that represents a face.

Return Value

DividedSurface
The newly created divided surface.
Exceptions
ExceptionCondition
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
ArgumentNullException A non-optional argument was null
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).
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.
ModificationOutsideTransactionException The document has no open transaction.
Example
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
            }
        }
    }
}
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

No code example is currently available or this language may not be supported.

No code example is currently available or this language may not be supported.

See Also