Hi,
I can get the midpoint of a curve but next I would like to be able to find out if an item in a list is a curve or a surface. Because if it’s a surface then I would like the midpoint of the surface and I need to provide two arguments.
import clr
clr.AddReference("ProtoGeometry")
from Autodesk.DesignScript.Geometry import *
# Import RevitAPI
clr.AddReference("RevitAPI")
from Autodesk.Revit.DB import *
from Autodesk.Revit.DB.Structure import LineLoad
clr.AddReference("RevitAPIUI")
from Autodesk.Revit.UI import TaskDialog
# Import ToProtoType, ToRevitType geometry conversion extension methods
clr.AddReference("RevitNodes")
import Revit
# Import DocumentManager and TransactionManager
clr.AddReference("RevitServices")
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
clr.ImportExtensions(Revit.GeometryConversion)
doc = DocumentManager.Instance.CurrentDBDocument
uiapp = DocumentManager.Instance.CurrentUIApplication
app = uiapp.Application
SOCR = UnwrapElement(IN[0])
midpoints = []
for s in SOCR:
if s is Curve: # This doesn't work and I would like to know what should go here
point1 = s.PointAtParameter(0.5)
midpoints.append(point1)
else:
surf1 = s.PointAtParameter(0.5, 0.5)
midpoints.append(surf1)
OUT = midpoints