Precast concrete beam over door

I want to run a script that would place a precast concrete beam over a door, with 200mm wider on both sides.

I’m very new to dynamo, so any help would be highly appreciated.

Welcome to the Forum @rudolf.
The best way to receive help here is to try to make a graph and let us know if you get stuck. The usually well suggest alternatives or a different approach if needed.

See below

1 Like

Thanks @Abdul_Ameer that really helped a lot. I have used what you have given me there. I would like to develop this further. Next I am going to try and have dynamo find the wall thickness of the wall the door is inserted to and create a beam of similar width. Also the wall construction type, as lintels will only be required in brick walls.

So far I have been able to find the wall thickness in Dynamo with the help of shared parameter.

The material class I have also been able to find, And been able to add a conditional statement (true/false) for each wall.

The problems I have found so far:

  1. The solution from @Abdul_Ameer creates beams in only 1 direction
  2. Cant link the ‘material class’ statement to create only beams for ‘Masonry’ walls.
  3. Don’t know how to link the wall thickness to beam thickness

Does anybody know how to make the beams be in the same direction as the wall. I’ve used the info as provided by @Abdul_Ameer following that method only creates it in the x-axis. I have tried various other nodes, but none comes even close to this. It worked perfectly if the wall is aligned in the x-axis direction only

You can extract the rotation of the doors and set your lintel to that rotation.

Here is the Python code from @m.blijsterbosch’s Elements.get.Rotation package/node.

import clr
import math

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

# Import RevitAPI
clr.AddReference('RevitAPI')
import Autodesk
#The inputs to this node will be stored as a list in the IN variable.
dataEnteringNode = IN
resultsRadian = []
resultsDegree = []
input = []

#verify that IN[0] is a list, if not make a list out of it
try:
	for items in IN[0]:
		input.append(items)
except:
	input.append(IN[0])

#make unwrapped list of elements
elements = []
for i in input:
	elements.append(UnwrapElement(i))

#get rotation parameter
for item in elements:
	resultsRadian.append(item.Location.Rotation)
	resultsDegree.append(math.degrees(item.Location.Rotation))
	
OUT = resultsRadian, resultsDegree
1 Like

Hello guys!

I’d like to thank you for your advice and I’ve tried on my own running this dynamo script in a sample project but I didn’t get @callbowen 's idea…
I’m new on Dynamo and any help will be very appreciated.
Thanks again

PS: this is the script that I’m using

Hi,

The node FamilyInstance.ByPoint need a point :slight_smile: