Hi All,
I am selecting one pipe with one open end and running the below code to get location of connector which is not connected . I am getting the out as shown below
(-10.047988955, -32.450827899, 9.022309711)
Location is not shown as an xyz point object. Do I need to do any geometry conversion in pyrevit (Like UnwrapElement or ToPoint()) to get the ouput as revit XYZ point object?
ElementIds = uidoc.Selection.GetElementIds()
for el in ElementIds:
Selected_Pipe = doc.GetElement(el)
conn = Selected_Pipe.ConnectorManager.Connectors
first_Point = None
for c in conn:
if not c.IsConnected:
first_Point = c.Origin
I am getting an error which says cannot create instances of point because it has no public constructors.
here is my code.
from pyrevit import revit # revit library can be used to get the active revit document
from pyrevit import forms,script,EXEC_PARAMS,UI #forms contains lot of user interface options ,scrpt is used to stop running the script ,EXEC_PARAMS for checking click modes
from Autodesk.Revit.UI.Selection import *
import clr
import sys
import math
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *
from pyrevit.revit.db.query import get_location
import collections
clr.AddReference('DSCoreNodes')
from DSCore.List import Flatten
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
from Autodesk.Revit.DB.Electrical import*
from Autodesk.Revit.DB.Mechanical import*
from Autodesk.Revit.DB.Architecture import *
from Autodesk.Revit.DB.Analysis import *
from Autodesk.Revit.DB.Structure import *
from Autodesk.Revit.DB import Transaction
from collections import defaultdict
from pyrevit import DB
uiapp = __revit__
uidoc = uiapp.ActiveUIDocument
doc = uiapp.ActiveUIDocument.Document
TestJ = []
ElementIds = uidoc.Selection.GetElementIds()
for el in ElementIds:
Selected_Pipe = doc.GetElement(el)
#Getting the first point
conn = Selected_Pipe.ConnectorManager.Connectors
first_Point = None
for c in conn:
if not c.IsConnected:
first_Point = DB.Point(c.Origin)
print(first_Point)