Share

ConnectorElement.CreatePipeConnector(Document, PipeSystemType, Reference) Method

Create a new pipe ConnectorElement.


Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 26.4.0.0 (26.4.0.0)

Syntax

C#

public static ConnectorElement CreatePipeConnector(
	Document document,
	PipeSystemType pipeSystemType,
	Reference planarFace
)

Parameters

document  Document
The document to add the connector to.
pipeSystemType  PipeSystemType
The PipeSystemType of the connector.
planarFace  Reference
The planar face to place the connector on.

Return Value

ConnectorElement
The pipe ConnectorElement.

Exceptions

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

Remarks

Regenerates the document.

Example

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);
    }
}

VB

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

See Also

Reference

Was this information helpful?