Model Revit Ceiling Grids for Navisworks Coordination using Dynamo

@Mostafa_El_Ayoubi Thanks again for your help!

Conclusion…? The four adaptive points worked better, but I think that they are excessive to have all the extra points for the straight grids in the center. They really only require two points. Here is my screen capture for four adaptive points. I think that the final version of this I will filter out the center lines vs the perimeter lines and use the required number of adaptive points as needed. That way I can use an L shaped profile around the perimeter and the T shaped grids in the center. The exploded CAD already comes as two separate line types so that shouldn’t be difficult.

I’m off for a weeks vacay!

Okay I finally got it haha …
Then you could try something like this that basically extrudes a profile along all your curves so you never have to worry about them being weirdly shaped :

It would also be possible to do that with different profiles if you can destinguish perimeter curves from grid.

Enjoy your holiday !

That worked great for following curved lines. Here are the points I used for my profile. I had to use decimal feet to get the scale the correct size because my project is in feet and inches.

I think a combination of adaptive components for all the straight lines in the center of the grid work best. It goes faster and doesn’t create a new family for each grid line, making the file size balloon on large projects. The perimeter lines could still be created using sweeps if needed. I still need to find the best solution to filter the lines. Possibly selecting all curved lines and giving them a parameter value in Revit? Curved lines have a “Center Mark Visible” parameter available while straight lines don’t.

So the above solutions were not built to use the Revit model surface pattern directly were they? I’ve wanted to do this but haven’t got around to it yet.

1 Like

That would be awesome if you could get it to work that way! Right now, the solution is to project exploded model lines exported from a RCP back up to the bottom surface of the ceilings. A few previous forum posts I saw, seemed to think that the location of the surface patterns was inaccessible due to the Revit API or some other reason. Not sure if that is the case since I am so new to Dynamo.

@Luke_Johnson do you have time now? hehe :slight_smile:

Unfortunately not yet :slight_smile:

I’m nearly at the beginning stages of this exact challenge. My expertise is Rhino/Grasshopper which is similar in logic, so if I come to a solution I will definitely share! Thank you for sharing your progress so far!

So complicated. Why not model your gridded ceilings as Sloped Glazing if you want them to be more realistic?



If I wanted to model the panels, how would I go about this? I am doing a similar thing but with suspended floors for Navisworks - my curves are coming from a CAD file which the sub contractor has set out (they don’t use revit but the contractor requires a BIM model), and I am finding the points by intersecting all the grid line curves (using bi morph CAD nodes). I am struggling with applying my four point adaptive component to the grid. Then the next problem is around the edges of the floor - how do I apply the 3 point adaptive components where the panels are cut?

I get that I need to structure my lists in the right way so the adaptive component by points can function, but don’t where to start with finding the correct list structure?

Thanks! great workflow by the way.


I stumbled upon this post after spending a lot of time trying to automate the process of placing sloped glazing at all of the 2x2 ceiling locations, for the same reason as OP: to model the grid in Navisworks.

My first attempts were to create a file that would only have my sloped glazing (sloped glazing is in the roof family), and I would get the locations of the ceilings from an imported Revit architectural file. For some reason, this didn’t work because Dynamo won’t seem to create a roof based on a profile from an imported object.

Now, I just create the sloped glazing inside the architectural file.

My method differs from OP’s in that I find the 2x2 ceilings, extract their solids, find the centroid, create an xy plane at the centroid, and create a profile from the intersection of the plane and the solid.

I’m having the same issues as OP with complex ceilings, and trying to line up with the pattern on the ceiling. Is there a way, using Revit API (C#) to extract the pattern in order to align to it? If so, I may explore creating an AddIn to do this function.

This is what my sloped glazing looks like in Revit:

and in Navisworks:

Edit: The screnshots of the Dynamo aren’t very clear. Here is the file: Ceiling Placement Test.dyn (25.1 KB)


I don’t know the API answer.

Perhaps a DXF export, then reading back in the Line positions from the DXF would get it done. A 2-point Line-based Family could be placed where every DXF line was.

now this gets me closer to placement thanks

Hey @CBailey can you please help me sharing with the dyn script? I really wish to accomplish this. The workflow seems so much better.