CreatePipeConnector Method (Document, PipeSystemType, Reference)


Create a new pipe ConnectorElement.

Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 22.0.0.0 (22.1.0.0)
Since: 2013

Syntax

C#
public static ConnectorElement CreatePipeConnector(
	Document document,
	PipeSystemType pipeSystemType,
	Reference planarFace
)
Visual Basic
Public Shared Function CreatePipeConnector ( _
	document As Document, _
	pipeSystemType As PipeSystemType, _
	planarFace As Reference _
) As ConnectorElement
Visual C++
public:
static ConnectorElement^ CreatePipeConnector(
	Document^ document, 
	PipeSystemType pipeSystemType, 
	Reference^ planarFace
)

Parameters

document
Type: Autodesk.Revit.DB Document
The document to add the connector to.
pipeSystemType
Type: Autodesk.Revit.DB.Plumbing PipeSystemType
The PipeSystemType of the connector.
planarFace
Type: Autodesk.Revit.DB Reference
The planar face to place the connector on.

Return Value

The pipe ConnectorElement.

Remarks

Regenerates the document.

Examples

Copy C#
public void CreatePipeConnectors(UIDocument uiDocument, Extrusion extrusion)
{
    // get the faces of the extrusion
    Options geoOptions = uiDocument.Document.Application.Create.NewGeometryOptions();
    geoOptions.View = uiDocument.Document.ActiveView;
    geoOptions.ComputeReferences = true;

    List<PlanarFace> planarFaces = new List<PlanarFace>();
    Autodesk.Revit.DB.GeometryElement geoElement = extrusion.get_Geometry(geoOptions);
    foreach (GeometryObject geoObject in geoElement)
    {
        Solid geoSolid = geoObject as Solid;
        if (null != geoSolid)
        {
            foreach (Face geoFace in geoSolid.Faces)
            {
                if (geoFace is PlanarFace)
                {
                    planarFaces.Add(geoFace as PlanarFace);
                }
            }
        }
    }

    if (planarFaces.Count > 1)
    {
        // Create the Supply Hydronic pipe connector
        //PipeConnector connSupply = 
        //    uiDocument.Document.FamilyCreate.NewPipeConnector(planarFaces[0].Reference, 
        //                                           PipeSystemType.SupplyHydronic);
        ConnectorElement connSupply =
            ConnectorElement.CreatePipeConnector(uiDocument.Document, PipeSystemType.SupplyHydronic, planarFaces[0].Reference);
        Parameter param = connSupply.get_Parameter(BuiltInParameter.CONNECTOR_RADIUS);
        param.Set(1.0); // 1' radius
        param = connSupply.get_Parameter(BuiltInParameter.RBS_PIPE_FLOW_DIRECTION_PARAM);
        param.Set(2);

        // Create the Return Hydronic pipe connector
        //PipeConnector connReturn =
        //    uiDocument.Document.FamilyCreate.NewPipeConnector(planarFaces[1].Reference,
        //                                           PipeSystemType.ReturnHydronic);
        ConnectorElement connReturn =
            ConnectorElement.CreatePipeConnector(uiDocument.Document, PipeSystemType.ReturnHydronic, planarFaces[1].Reference);
        param = connReturn.get_Parameter(BuiltInParameter.CONNECTOR_RADIUS);
        param.Set(0.5); // 6" radius
        param = connReturn.get_Parameter(BuiltInParameter.RBS_PIPE_FLOW_DIRECTION_PARAM);
        param.Set(1);
    }
}
Copy VB.NET
Public Sub CreatePipeConnectors(uiDocument As UIDocument, extrusion As Extrusion)
    ' get the faces of the extrusion
    Dim geoOptions As Options = uiDocument.Document.Application.Create.NewGeometryOptions()
    geoOptions.View = uiDocument.Document.ActiveView
    geoOptions.ComputeReferences = True

    Dim planarFaces As New List(Of PlanarFace)()
    Dim geoElement As Autodesk.Revit.DB.GeometryElement = extrusion.Geometry(geoOptions)
    For Each geoObject As GeometryObject In geoElement
        Dim geoSolid As Solid = TryCast(geoObject, Solid)
        If geoSolid IsNot Nothing Then
            For Each geoFace As Face In geoSolid.Faces
                If TypeOf geoFace Is PlanarFace Then
                    planarFaces.Add(TryCast(geoFace, PlanarFace))
                End If
            Next
        End If
    Next

    If planarFaces.Count > 1 Then
        ' Create the Supply Hydronic pipe connector
        'PipeConnector connSupply = 
        '    uiDocument.Document.FamilyCreate.NewPipeConnector(planarFaces[0].Reference, 
        '                                           PipeSystemType.SupplyHydronic);
        Dim connSupply As ConnectorElement = ConnectorElement.CreatePipeConnector(uiDocument.Document, PipeSystemType.SupplyHydronic, planarFaces(0).Reference)
        Dim param As Parameter = connSupply.Parameter(BuiltInParameter.CONNECTOR_RADIUS)
        param.[Set](1.0)
        ' 1' radius
        param = connSupply.Parameter(BuiltInParameter.RBS_PIPE_FLOW_DIRECTION_PARAM)
        param.[Set](2)

        ' Create the Return Hydronic pipe connector
        'PipeConnector connReturn =
        '    uiDocument.Document.FamilyCreate.NewPipeConnector(planarFaces[1].Reference,
        '                                           PipeSystemType.ReturnHydronic);
        Dim connReturn As ConnectorElement = ConnectorElement.CreatePipeConnector(uiDocument.Document, PipeSystemType.ReturnHydronic, planarFaces(1).Reference)
        param = connReturn.Parameter(BuiltInParameter.CONNECTOR_RADIUS)
        param.[Set](0.5)
        ' 6" radius
        param = connReturn.Parameter(BuiltInParameter.RBS_PIPE_FLOW_DIRECTION_PARAM)
        param.[Set](1)
    End If
End Sub

Exceptions

Exception Condition
Autodesk.Revit.Exceptions ArgumentException The reference is not a planar face. -or- document is not a family document.
Autodesk.Revit.Exceptions ArgumentNullException A non-optional argument was null
Autodesk.Revit.Exceptions ArgumentOutOfRangeException A value passed for an enumeration argument is not a member of that enumeration
Autodesk.Revit.Exceptions InvalidOperationException Connector creation is not allowed in this family.

See Also