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# |
---|
|
Visual Basic |
---|
|
Visual C++ |
---|
|
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. |