How to downgrade Revit model? IFC-Revit Workaround

I have a basic framing model in Revit 2019 that I would like to convert to Revit 2018.

I can export R2019 into IFC, then import the IFC into R2018 and explode group. The issue is that these exploded elements are not native Revit elements anymore.

So I looked up a way to extract geometry of all these IFC elements and hopefully find a way with Dynamo to re-create Revit native elements in place of the IFC elements. From Simply Complex blog, I re-created dynamo script that should create column centerline from a solid element however it doesn’t work. I understand “Face.Vertices” expects a “face” but is getting a “solid” but it seems to work for simply complex? Is there a different node that could be used to extract faces?

Any other ideas how these IFC elements could be replaced with Revit native elements?

First up: You’re setting yourself up for a headache. Simple columns aren’t too bad at first glance. But the end result after you get the location line will be “well now my columns aren’t rotated correctly”. Then they won’t be the right size. Nor connected correctly. Nor… I won’t even get into ‘what if the IFC geometry isn’t reading correctly’ situations.

Best bet is to get everyone on the same version (aka upgrade or have the person who did the structural model redo the work manually in 2018), or learn to live with IFC imports for coordination. Either of those two will likely save you $ (assuming you bill hourly against a maximum fee) in the end.

Now, to answer your question: to find the centerline, try Geometry.Explode, then picking up at item #3 in the graph you posted above.

1 Like

I agree with you on all accounts and we are going to do the project in 2019.
The real issue I have is that our engineering software isn’t yet compatible with R2019. It’s only the start of the project and so I was hoping that I could somehow get the analytical lines to show up in R2018 by doing this weird conversion from IFC just so that we could play around with different column arrangements in our design software, etc.

Geometry.Explode created surfaces and for some reason Face.Vertices still doesn’t accept it.


Surface.PerimeterCurves to get the outline edges of the surface. Curve.PointAtParameter with cross product lacing and a list of [0,1] as the parameter values in order to get the points at each end of each curve. Flatten the list completely (for each column, so maybe not COMPLETELY), before finally using a Lin.ByBestFitThroughPoints to get the column center line.

Might have skipped something but you can hopefully find your way with that.

Mind if I ask what engineering software you’re in? Might have a way to move stuff directly to said software from Revit 2019 via Dynamo.

Does the Element.Faces node not work in this case? It should replace both Element.Geometry and Element.Explode.

@JacobSmall, I will play around with those two nodes and see what happens. We are using SFRAME.

@kennyb6, I tried Element.Faces node but it also gives surfaces. I think I’ll have to give the above a try and skip using Face.Vertices node altogether.