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

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 →