Get Location as point, how?

Hello,

how do i get the Location of my Instances as Point ?

import clr
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
clr.AddReference('RevitNodes')
import Revit
clr.ImportExtensions(Revit.GeometryConversion)

elements = UnwrapElement(IN[0])
points =[]

for e in elements:
	points.append(e.Location.ToPoint())

OUT = points

ToPoint does not work
grafik
KR
Andreas

Have you tried setting them to ToDSType(True)

points.append(e.Location.ToPoint().ToDSType(True))

@Alien ,

import clr
clr.AddReference('RevitAPI')

from Autodesk.Revit.DB import *
clr.AddReference('RevitNodes')

clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *

import Revit
clr.ImportExtensions(Revit.GeometryConversion)

elements = UnwrapElement(IN[0])
points =[]

for e in elements:
	points.append(e.Location.ToPoint().ToDSType(True))

OUT = points

no

@Alien ,

so i got the points BUT scaled, why? i need just a point from my door … it makes no sence

is there a simpler way, have i to convert each point X,Y,Z to metric system ?

# Phython-Standard- und DesignScript-Bibliotheken laden
import sys
import clr

clr.AddReference('RevitAPI')

from Autodesk.Revit.DB import *
clr.AddReference('RevitNodes')

clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *

doors = UnwrapElement(IN[0])
locations = []
Points= []

for door in doors:
	location = door.Location
	if location:
		point = location.Point
	if point:
		locations.append(point)

for i in locations:
	Points.append(Point.ByCoordinates(i.X,i.Y,i.Z))
	
OUT = Points

Try [i.ToPoint() for I in revitPoints]

The values are likely returning in feet not in meters, which would cause this type of scaling issue. If my method doesn’t work at the right scale, multiply by the scale factor for your units in your method.

Edit: you might need to increase your imports as well.

# Import ToDSType(bool) extension method
clr.AddReference("RevitNodes")
import Revit
clr.ImportExtensions(Revit.Elements)

# Import geometry conversion extension methods
clr.ImportExtensions(Revit.GeometryConversion)
2 Likes

hello,

import clr
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
clr.AddReference('RevitNodes')
import Revit
clr.ImportExtensions(Revit.GeometryConversion)
clr.ImportExtensions(Revit.Elements)
elements = UnwrapElement(IN[0])
points =[]

for e in elements:
    a=e.Location
    points.append([a.Point.ToPoint(),a.Point])

OUT = points

cordially
christian.stan

1 Like

@christian.stan @jacob.small @Alien ,

i did this way
grafik

import sys
import clr
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
clr.AddReference('RevitNodes')
import Revit
clr.ImportExtensions(Revit.Elements)
clr.ImportExtensions(Revit.GeometryConversion)
clr.AddReference('ProtoGeometry')

from Autodesk.DesignScript.Geometry import *

doors = UnwrapElement(IN[0])
locations = []
Points = []

for door in doors:
    location = door.Location
    if location:
        point = location.Point.ToPoint()
    if point:
        locations.append(point)
for i in locations:
    Points.append(i)
OUT = Points

@christian.stan ,

your scripte creates that

grafik

There are only 15 lines without the attached script
odd

cordially
christian.stan