Converting from Model Coordinates to Shared Coordinates

Its looking good :slight_smile:

you might find the following python interesting, I cant remeber where I got it from, which is really bugging me as I usually keep a good note of where things are from, but its probably from this forum, from one of the many good people sharing their efforts

import clr
import math
# import Document Manager
clr.AddReference("RevitServices")
import RevitServices 
from RevitServices.Persistence import DocumentManager
doc = DocumentManager.Instance.CurrentDBDocument
clr.AddReference("RevitNodes")
import Revit
clr.ImportExtensions(Revit.Elements)
clr.ImportExtensions(Revit.GeometryConversion)
clr.AddReference("RevitAPI")
from Autodesk.Revit.DB import *

dataEnteringNode = IN
outData = []
outProjBasePt = []
outProjSurvPt = []
outProjLoc = []
ft2mm = 304.8

coll = FilteredElementCollector(doc)
basePt = coll.OfClass(BasePoint).ToElements()

projBasePt = None

for e in basePt:
	a = e.Category.Name
	if a == "Project Base Point":		
		pbpEW = e.LookupParameter("E/W")
		pbpNS = e.LookupParameter("N/S")
		pbpElev = e.LookupParameter("Elev")
		pbpAngle = e.LookupParameter("Angle to True North")
		outProjBasePt.append(round(pbpEW.AsDouble()*ft2mm,6))
		outProjBasePt.append(round(pbpNS.AsDouble()*ft2mm,6))
		outProjBasePt.append(round(pbpElev.AsDouble()*ft2mm,6))
		outProjBasePt.append(round(pbpAngle.AsDouble()*180/math.pi,6))
	elif a == "Survey Point":
		pspEW = e.LookupParameter("E/W")
		pspNS = e.LookupParameter("N/S")
		pspElev = e.LookupParameter("Elev")
		outProjSurvPt.append(round(pspEW.AsDouble()*ft2mm,6))
		outProjSurvPt.append(round(pspNS.AsDouble()*ft2mm,6))
		outProjSurvPt.append(round(pspElev.AsDouble()*ft2mm,6))

projLoc = doc.ActiveProjectLocation
origin = XYZ(0.0,0.0,0.0)

projPos = projLoc.get_ProjectPosition(origin)
if projPos == None:
	outProjLoc.append("No Project Position at origin point")
else:
	outProjLoc.append(round(projPos.EastWest * ft2mm,6))
	outProjLoc.append(round(projPos.NorthSouth * ft2mm,6))
	    	
OUT = [outProjLoc, outProjBasePt, outProjSurvPt]
2 Likes