Problems removing curtain grid line segment

Hi All,

Anyone having issues with Rhythm package CurtainGridLine.RemoveSegment node? I can see the preview correctly indicating which gridlines should be removed but when actually run only a couple of random lines from the list are actually removed from the model. I am trying to create a staggered curtainwall panel pattern but really any application where a list of curves corresponding to gridlines is removed from the curtainwall is the main goal. Attached the file and some screenshots - any help would be greatly appreciated!

staggerPanel.dyn (33.8 KB)

What’s the error you are getting? Also, your gridlines look to not be derived from the face? They should be on that face to be removed. :slight_smile:

Hi John,

The gridlines are showing up out of plane because I moved the wall after running the script to show that it is locating the gridlines correctly. I get this message either way:

Warning: CurtainGridLine.RemoveSegment operation failed.
Segment may not have been found in location indicated by curve.

Weird. Do you have a sample file (RVT) to investigate? Edit: Saw the dyn now too.

1 Like

Hi John,

Attached is a test file from r2019, just used a generic out-of-box template and default storefront-curtainwall system. Same issue with r2018.3.

I noticed that if I plug the exploded geometry node directly to the curves input in the CurtainGridline.RemoveSegment it does remove the grlidlines, but when I try to modify the list and then return in the same format, or a flattened list it does not work.

Also just curious if you would be wiling to share any of your class definitions? I have just started some zero-touch node creation and was curious.

Thanks for looking!

Project1.rvt (1.4 MB)

1 Like

Hi John,

I am attempting to recreate some of your nodes as a learning exercise and managed to get this one to work almost the same (?). I am wondering how you retrieved the CurtainGridLine class using the ElementId within the node? Here is my code snippet:

        var wallElement = wall.InternalElement;
        var wallE = wallElement as Autodesk.Revit.DB.Wall;
        var rvtdb_CurtainGrid = wallE.CurtainGrid;
        return new Dictionary<string, object>
            { "RVTDB_CurtainGrid", rvtdb_CurtainGrid },
            { "U Gridline Ids", rvtdb_CurtainGrid.GetUGridLineIds() },
            { "V Gridline Ids", rvtdb_CurtainGrid.GetVGridLineIds() },


You need to get the element itself. I believe Doc.GetElement would do it.

Same issue. Node: CurtainGridLine.Remove Segments does not remove gridlines at all. Error: …“Segments may not have been found in location indicated by the curve”

I think I know where problem is: You cannot use the List.Flatten node on curves to make CurtainGridLine.RemoveSegment work

That is not the issue. Your original screenshot demonstrates the problem very clearly. (If we had a sample RVT file, we could investigate more, but that was never provided.)

Your curtain grids (blue lines in Revit viewport) are not on your wall element after you extracted them via Dynamo. Something is going on regarding your project location, a translation or something like that.

The error message, Error: …“Segments may not have been found in location indicated by the curve” means exactly what it says. You are feeding in curves that have no curtain grid hosted on them because they are way off to the side.

Find out what is going on there, and I bet the rest will fall into place.

Hi John,
Thanks for answer… not my thread, but I solved my case with what You’ve wrote

I had to change last node lacing to crossproduct to let it found those Curves where it should!! :slight_smile:


Glad to hear you got it sorted :+1: