Get all conduit connectors for the element

Good morning.
I am trying to obtain all the connectors that the element has, thus obtaining the point of the connector as well as the vector of that connector.
Please any ideas…thank you very much.

Some document for you :

https://chuongmep.github.io/OpenMEP/api/OpenMEPSandbox.Geometry.CoordinateSystem.html#OpenMEPSandbox_Geometry_CoordinateSystem_Display_Autodesk_DesignScript_Geometry_CoordinateSystem_System_Double_

1 Like

I don’t understand, could you please explain it to me, I’m new to python and much more to C#

It is a Node Package, it is to learn to program, it is query code, what is it?? And if it is a package, what is the name of the package???

This is API documentation for part of the OpenMEP package, which the methods/nodes in question are a part of. The project homepage can likely help.

hi,

here an example with Python

import clr
import sys
import System
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *
import Autodesk.DesignScript.Geometry as DS

#import Revit API
clr.AddReference('RevitAPI')
import Autodesk
from Autodesk.Revit.DB import *
import Autodesk.Revit.DB as DB

clr.AddReference('RevitNodes')
import Revit
clr.ImportExtensions(Revit.GeometryConversion)
clr.ImportExtensions(Revit.Elements)

#import transactionManager and DocumentManager (RevitServices is specific to Dynamo)
clr.AddReference('RevitServices')
import RevitServices
from RevitServices.Persistence import DocumentManager
doc = DocumentManager.Instance.CurrentDBDocument

def to_DS_CoordinateSystem(c):
    """
    Converts a Revit coordinate system to a DesignScript coordinate system.
    - Parameters:
    c (Autodesk.Revit.DB.CoordinateSystem): The Revit CoordinateSystem object.
    - Returns:
    Autodesk.DesignScript.Geometry.CoordinateSystem: The DesignScript CoordinateSystem object.
    """
    return DS.CoordinateSystem.ByOriginVectors(c.Origin.ToPoint(), 
                                                c.BasisX.ToVector(), 
                                                c.BasisY.ToVector(), 
                                                c.BasisZ.ToVector())
    
def get_connectors_origin_system(elem):
    """
    Retrieves the connector information from a Revit element.
    - Parameters:
    elem (Autodesk.Revit.DB.Element): The Revit element from which to retrieve connector information.
    - Returns:
    List[List[Any]]: A list of lists containing DesignScript CoordinateSystems and connector origins.
    """
    if hasattr(elem, "MEPModel"):
        conSet = [c for c in elem.MEPModel.ConnectorManager.Connectors if c.ConnectorType != ConnectorType.Logical]
        return [[to_DS_CoordinateSystem(con.CoordinateSystem), con.Origin.ToPoint()] for con in conSet]
    return []


#Preparing input from dynamo to revit
elem = UnwrapElement(IN[0])

OUT = get_connectors_origin_system(elem)