Create Beams by Python block

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 :grinning:

# 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
3 Likes