hi @ramsaik495,
I write a script for column too, it’s a bit different with beam creation way because of their family nature …
For instance, Beam can create by your curves(lines) geometry and Column can only be created on the origin point. In this example, I created at the start point of each line.
Anyway, the code is provided below and @Jonathan.Olesen your guess is so close …
# dynamo version - 1.3.0
import clr
clr.AddReference("RevitAPI")
clr.AddReference("RevitServices")
from Autodesk.Revit.DB import *
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument;
lines = IN[0];
columns = [];
# list
if isinstance(lines, list):
lines = UnwrapElement(lines);
else:
lines = UnwrapElement([lines]);
#current view level
level = doc.ActiveView.GenLevel;
#collect family symbol
fsymbol = FilteredElementCollector(doc).OfClass(FamilySymbol).OfCategory(BuiltInCategory.OST_StructuralColumns).ToElements()[0];
#transaction start
TransactionManager.Instance.EnsureInTransaction(doc);
for line in lines:
#create column
column = doc.Create.NewFamilyInstance(line.GeometryCurve.GetEndPoint(0), fsymbol, level, Structure.StructuralType.Column);
columns.append(column);
#transaction end
TransactionManager.Instance.TransactionTaskDone();
OUT = columns