Message 1 of 1
Export Fabrication Hanger Coordinates Using Dynamo
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
A simple way to export coordinates of Fabrication Hangers to a text file that Trimble can read (CSV File).
# Created By: Luis Ojeda - BIMcredible 2023
import clr
clr.AddReference('ProtoGeometry')
import Autodesk.DesignScript.Geometry
from Autodesk.DesignScript.Geometry import *
clr.AddReference('DSCoreNodes')
import DSCore
from DSCore import *
clr.AddReference('RevitAPI')
import Autodesk
from Autodesk.Revit.DB import FabricationPart
from Autodesk.Revit.DB import FilteredElementCollector, BuiltInCategory
clr.AddReference('RevitNodes')
import Revit
clr.ImportExtensions(Revit.Elements)
clr.ImportExtensions(Revit.GeometryConversion)
clr.AddReference('RevitServices')
import RevitServices
from RevitServices.Persistence import DocumentManager
doc = DocumentManager.Instance.CurrentDBDocument
itmLst = UnwrapElement(IN[0])
startNum = UnwrapElement(IN[1])
locLst = [UnwrapElement(IN[2])]
coordType = UnwrapElement(IN[3])
pntId = startNum
def GetFabLoc(item, pntId, itmDsc, coordType):
tmpLst = []
rodInfo = item.GetRodInfo()
rodCnt = rodInfo.RodCount
for n in range(rodCnt):
rodLoc = rodInfo.GetRodEndPosition(n)
pntLoc = (Point.ByCoordinates(rodLoc.X,rodLoc.Y,rodLoc.Z))
pntCoord = pntLoc
if coordType == 1:
pntCoord = ConvToSharedCoordinates(pntLoc.ToXyz())
#pntLine = pntId.ToString() + ',' + pntCoord.Y.ToString() + ',' + pntCoord.X.ToString() + ',' + pntCoord.Z.ToString() + ',' + itmDsc
pntLine = pntId.ToString() + ',' + pntCoord.Y.ToString() + ',' + pntCoord.X.ToString() + ',' + pntCoord.Z.ToString() + ',Hanger'
tmpLst.append(pntLine)
pntId = pntId + 1
return tmpLst, pntId
def ConvToSharedCoordinates(pnt):
pnt = doc.ActiveProjectLocation.GetTotalTransform().Inverse.OfPoint(pnt).ToPoint()
return pnt
for item in itmLst:
if item.Category.Name.ToString() == 'MEP Fabrication Hangers':
itmDsc = item.LookupParameter('Product Long Description').AsString()
tmpVal = GetFabLoc(item, pntId, itmDsc, coordType)
locLst.append(tmpVal[0])
pntId = tmpVal[1]
OUT = locLst
Output File