Get geometry for steel plate in revit 2019

Hi guy!
I want get geometry for steel plate is steelproxyelement in revit 2019 I have found many ways that do not produce results
So can you help me! Thank so much!

1 Like

@Bach, that’s not an easy road :sweat:
Firstly, steel connections are part of the AdvanceSteel API, which resides in the steel connections add-in folder:

C:\Program Files\Autodesk\Revit 2019\AddIns\SteelConnections

Secondly, AdvanceSteel API shows these elements as solids, which means that they are not more than pure geometry (there’s no way to extract useful data from there). If it is okay for you, then you should find a way to reference AdvanceSteel APIs from Dynamo. I haven’t tried that yet.

1 Like

@zhukoven Thanks for your answer! I will try learn more and start from this idea!

@Bach, welcome! Also check out this thread at Autodesk forums:
https://forums.autodesk.com/t5/revit-api-forum/revit-api-2019-structural-connections-and-subelement-geometry/td-p/7953233

Although these samples are in C#, they may be handful.

1 Like

Thanh @zhukoven now i will check this forums

Hi @zhukoven @kennyb6 I have found a way to use python, but currently the file only works for an element you can help me to work it for multiple element

Enable Python support and load DesignScript library

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

import clr
import sys
pyt_path = r’C:\Program Files (x86)\IronPython 2.7\Lib’
sys.path.append(pyt_path)
import os
import webbrowser
import unicodedata

clr.AddReference(‘RevitAPISteel’)
clr.AddReference(‘RevitAPI’)
from Autodesk.Revit.DB import *

clr.AddReference(‘RevitAPIUI’)
from Autodesk.Revit.UI import Selection

clr.AddReference(‘RevitNodes’)
import Revit
clr.ImportExtensions(Revit.Elements)
clr.ImportExtensions(Revit.GeometryConversion)

clr.AddReference(‘RevitServices’)
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager

clr.AddReference(‘DSCoreNodes’)
from DSCore import *

doc = DocumentManager.Instance.CurrentDBDocument
uidoc = DocumentManager.Instance.CurrentUIApplication.ActiveUIDocument
views = doc.ActiveView

colec = FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_StructConnectionPlates).WhereElementIsNotElementType().ToElements()
connection = UnwrapElement(IN[0])

TransactionManager.Instance.EnsureInTransaction(doc)
opt = Options()
opt.ComputeReferences = True
opt.IncludeNonVisibleObjects = True
opt.View = doc.ActiveView
geo = connection.get_Geometry(opt)
TransactionManager.Instance.TransactionTaskDone()

OUT = geo

5 Likes

Really interested,

I’m having the same issue right now. I cannot find the wat to get the location of the steel plates.

This method helped me a LOT! In addiction, if someone still can’t generate the geometry, this other topic helped me. Specifically, the line that says enum1 = geo1.GetEnumerator() ; enum1.MoveNext(), I don’t know what it does but solved my issues.