Framing Element overshooting Reference Point

I’m curious to understand why my framing element overshoots the tops of the columns so substancially throughout the entire row. Carefully checking the list of points lines etc. everything appears to line up up nicely but when sending to REVIT the elements are too long. It appears fixable with post-processing in REVIT but I much rather control this behaviour in Dynamo and perhaps learn just a little bit more about this awesome program. Thanks.

15-10-16-a beam extension issue

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15-10-16-b beam extension issue

 

 

 

 

 

(Sorry. Edits to OP are not reflected in the forum.)

This is due to Revits auto setback for beams. Check out this blogpost for how to turn it off. http://bimandbeam.typepad.com/bim_beam/2009/07/framing-templatehow-to-disable-auto-setback.html

Don’t know any other way, but maybe others will have better answers for you.

This might solve the issue…

20151018-3

1 Like

Unforunately VS, your suggestion fails at the Set Paramenter node with what I think is an unrelated internal error: “Warning: Internal error, please report: Dereferencing a non-pointer. (3f47aacd)”. I’m suspicious that setbacks are the cause anyway because the +3000mm overshoot is not recorded in the properties.

Blair, could you upload a demo Revit file containing the offending elements?

15-10-20 beam extension issue

 

 

 

 

 

HEXLIX test eviro1

I’ve tried my best to link the file. As I’ve continued to investigate I’ve noticed each strcutural member is variously missing the “Start Join Cutback” and “End Join Cutback” parameters in REVIT. This, therefore, returns an error in Dynamo. Setting a simple instance parameter like “z-offset” in Dynamo works without issue. of note is that the parameters missing in Revit are the structural memebers which overshoot the reference point.

 

 

 

15-10-20 beam extension issue

 

 

 

 

 

 

 

(Re-posting for clarity.)

You could use the Start Extension and End Extension instead.

But the problem is that in spite of these two being 0 in your demo Revit file, the ends of the beam extend beyond/fall short of their start/end points.

Don’t think altering parameters with Dynamo will help unless we identify a pattern/reason that explains this behavior.

The issue here is the Beam/Column Joins. You can edit the behavior by clicking the Beam/Column Joins button and adjusting the arrows. If you are handy with the Python, you can write a small script using the StructuralFramingUtils.DisallowJoinAtEnd method to automatically prevent any joins at those beam ends (note that this would result in an overlap with the column geometry, but that might be better than the overshoot). You can manually do this by selecting a member, right-clicking on one of the end nodes, then select “Disallow join”.

BeamJoins

1 Like

Hmm. Despite not getting the exact effect I’m looking for it can not be said I didn’t learn anything in this thread. It is, indeed, somehow connected joining. And though while learning python is a long term goal I guess for the foreseeable future I will have to settle for doing some post-processing before exporting the geometery to Illustrator - which I’m fine with - except that eventually I will be embarking on much bigger paramentically driven structural models for which my goal is to limit post-processing workflows which necessitate udpating every structural element by hand.

Thanks for your help for bring some concrete answers to this problem.

Hi,

This is more of a Revit problem, than a Dynamo one. I have a solution in spring nodes, similar to the one Ben mentioned. It evaluates he beam’s cut length and length parameters and filters out the beams that have large extents. Because your beams are quite short, you’ll need to use a small margin:

2015-10-27_16-17-26

 

 

 

 

 

2015-10-27_16-12-46

1 Like

Try Python Script:

import clr
import math
# Import Dynamo Nodes
clr.AddReference('DSCoreNodes')
import DSCore
from DSCore import *
#Import Revit Nodes
clr.AddReference('RevitNodes')
import Revit
clr.ImportExtensions(Revit.Elements)
clr.ImportExtensions(Revit.GeometryConversion)
clr.ImportExtensions(Revit.GeometryReferences)
from Revit.Elements import *

# Import RevitAPI
clr.AddReference('RevitAPI')
clr.AddReference('RevitAPIUI')
import Autodesk
#from Autodesk.Revit.DB import *
from Autodesk.Revit.UI import *
from clr import StrongBox

#from Autodesk.Revit.DB.FamilyType import Name

# Import DocumentManager and TransactionManager
clr.AddReference('RevitServices')
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *
import System
clr.AddReference('System')
from System.Collections.Generic import *
import RevitServices


framing1 = IN[0]

eror1 = 0
eror2 = 0
eror3 = 0
eror4 = 0

for i in framing1:
	try:		
		i.SetParameterByName("End Join Cutback", 0)
	except:
		eror1 = eror1 + 1
	try:
		i.SetParameterByName("Start Join Cutback", 0)
	except:
		eror2 = eror2 + 1
	
	try:		
		i.SetParameterByName("Start Extension", 0)
	except:
		eror13 = eror3 + 1
	try:		
		i.SetParameterByName("End Extension", 0)
	except:
		eror4 = eror4 + 1

OUT = eror1, eror2, eror3, eror4
2 Likes

Actually you’ve resurrected quite an old thread. Since 2018 I’ve been using the Structural Framing Disallow Joins node from I forget who. I’m pretty sure it does something similar with a python script.