Create Walls from Complex CAD Plan using Double Lines

This is a topic that has been posted on before, but I from my perusing, it seems the examples tend to be simpler (i.e. less complexity in the linework of the associated CAD file). I am going to use this topic as a thread where hopefully I achieve a complete solution based on my objectives.

I would like to semi-automate the creation of revit walls from our facilities’ CAD plans. A coworker of mine managed to make a script that turns lines from certain layers into very thin (0.25") walls. From a printing perspective, this works great, but at the modeling level, creates some problems (think placement of doors, room, manipulation of walls, etc.).

I worked for some time to create a manually run Dynamo Player script that allows you to select two walls and create a wall between the two lines. In addition, I wrote/placed some code that determines if the wall to be created already exists (1/8" precision) or needs to be created. I then automated the creation of a generic wall type (1/8" precision) with some nice rounding involved, to then use for that wall type. I think that part works well. Although I am having some problems finding and using the centerline. I am intending to spend more time, when I get it, to figure that out.

I am attaching the dynamo script that does the manual conversion of walls. I am also attaching a trimmed down inside part of an example building, that I will use to run the code on. I think I would like to have all of this contained in one Dynamo code script.

I am posting this as well to look for feedback and guidance.

Draw Center Wall and Delete Existing - 3.dyn (203.0 KB)

0062-1ST_Test_File.dwg (404.0 KB)

1 Like

Some thoughts after approaching this problem:

  1. Work from outside in and use the first match found to create a wall.

    1. Requires identifying outside. May be possible pairs of lines that exist as duplicates in another list and filtering out the ‘inside’ pairs.

    2. In addition, once the right pair has been identified, the searching should stop and all other pairs in any other list should be deleted.