Does Tool.CropViewFromRoomShape for elevations exist?


Just wondering, does a node like Tool.CropViewFromRoomShapeWithOffset
but for elevations or sections instead of floor plans exist?

Would be quite handy.


I don’t know if it exists, but it’s doable. In fact I built a version of this which at my last office. It used a filled region instead of adjusting the crop to ensure we didn’t get any slopes crop lines that cause print speed and PDF size issues.

My method was somehing like this:

First get the room rooms in the active view, and filter out any which don’t get crossed by my view plane. Then I got the included room’s boundaries, find the view plane, and intersect the two. Add in some polycurve creation/modification to get a continuous closed curve, then do an offset poly by 6", then convert both polycurves to regular curves, and then move one endpoint side on each from and you have a little closed ‘C’ shape which can make your polyline.

Get the bounding box that contians a the first poly, and create a bounding box wth a size 2" larger than that. This will make the view just barely larger than your poly so that you see the entirety of the cut line. The dimension setting will vary by your need.

Create a filled region from that polycurve, set the style to solid white, get the sketch elements of said filled region and change all of them to your cut line style. Last step is user verification - that is confirm the tool worked and go around and adjust the C shape to remove the angled ends of the C and create a donut, and while they are at it confirm that all shapes are correct.

It struggled with views with multiple cut rooms (or open plans of kitchen and dining rooms) but I did modify the initial collection and list management to run on every interior elevation view type on a sheet in one go, so you were seeing what was modified and could say ‘nope undo’ if somehing was crazy.

The C shape didn’t seem ideal in that users had to modify two angled lines, but forcing the designers to review that also meant that they had to look at every view before they hit print so they caught a LOT of other issues (Hey where did our casework tags go in all the bathrooms?) which they had time to fix because of the view masking and crop being mostly automated. If you really cared to you could modify the sketch line locations programmatically. Personally I preferred making them review it for the added QC check.

Sadly I only got to see this in use in two jobs before I left my last office: A mid level user utilized it on multi family project I was the BIM guy on; and another team got to use it for an office reno. Also i didn’t bring that script with me as it was in the Dynamo player directory and why would I think to bring that work with me… Why don’t you give building this a whirl and see where you get hung up. I’ll respond to any questions you post here.

Thanks for such elaborated reply and the offer to assist me!

I’d be happy to try (I’ve messed a bit with boundaries and intersections but didn’t achieve the expected result.

Unfortunately I’m always quite busy, however if I finally try to do it, I will ask for sure :slight_smile:

I’ll try to put bits of time now and then on this :slight_smile:

Would it be possible just to get the elevation line intersection with the room boundary in plan (I know that would make necessary to select a plan view)?

And then with those 2 points (in the best case) and with the room base and top limits create the crop region for the elevation?

If would be a much simple/quick solution and as you said, it’s not meant to be totally perfect and has to be checked afterwards, but still a huge time saver.

Possible? Sure. I don’t know if the simplicity is any less due to the added difficulty matching the elevation with the additional rooms across plan. Also will result in more geometry checks. And you will lose bounding lines for the roofs, soffits, coves and ceiling plane changes, floor height changes, and the like.

I believe in my current workflow would be enough and a good learning starting point.

Then I can try to make a more generic one. Right now I made a huge (at least for me) graph for the project I’m working on, that automatically when inputting one room:

  • creates elevations (not properly cropped most of the time as the model includes a lot of linked files).
  • create plan view and crop with the room shape
  • creates sheet and places previous views on sheet
  • assigns view templates
  • assigns the required viewport types and title on sheet to every view
  • set crop view, annotation, show crop region parameters
  • renumber the detail views
  • renames sheet and views with level-room name-room number
  • renames and renumbers sheet according to project BIM standard naming (check level and set the floor, company, project, volume, etc. codes

So basically is a “room internal elevations creator”.

Still need to add how to sort the views in order and to add a 3d iso to the sheet. And it fails sometimes cropping views (my guessing is that depending if the boundaries are in liked files or too complex).

So that’s why I believe it would be good just to rely (for now) in the room volume. Anyway I already have the floor plan view with the room somewhere in the graph :slight_smile:

I’ve managed to intersect the view plane of the elevation with the room boundary and get the base line of the crop region (no need to use a floor plan):

Next: close the polycurve and crop the elevation.

I had something similar going on a little bit ago, along with a solution from @jacob.small. don’t know if it will help or not but it is worth a look:

That’s what Jeremy posted in his website

It’s not a finished product, but someone could turn it into one if they were so inclined…

wow, thanks @jacob.small , @karthi1015 and @Chad_Clary for all that information! :smiley:

I’ve already got something that may work, still have to read and try more, though, but looks very promising.

1 Like

I typed this but it fails in the List.Transpose Codeblock:

You have an extra input for some reason. Perhaps a namespace collision. Try using a List.Create node followed by a List.Transpose node.

Thanks, I’ve should tryed that before asking…

Now it stops at curve join. I think I’ve copied it correctly.

Error is: Curve join operation failed. Curve join produced more than one WIRE in PolyCurve


Ick, overlapping geometry - do you have more than one room being cut through in Thant if the elevations?

There are some overlapping rooms somewhere in the model like in the stairs. I’ll check that when I’m more free.