Saturday, November 30, 2019

Work Plane Based Families and Rotate w Copy

I participated in a thread at Autodesk's Revit forum and it took me far too long to catch on to the issue described at the outset. I should have retraced the thread sooner, but I did get there eventually.

I'm referring to the Rotate tool and its Copy option, this...


The issue boils down to this: the Rotate with Copy option works/affects a Work Plane-Based (and face-based) family differently than when a family is merely hosted by a Level (all non "based" families). Let's start here, imagine I want two screens on my desk like this.


These are stock families: TV - Flat Screen.rfa and Desk.rfa The desk has a top surface that isn't visible in plan view so it can't act as a face to host the TV. I changed that. The TV isn't a work plane-based family. In a plan view, when I place it on the desk it ends up eaten by the desk because it looks like this in a 3D view.


Sure, I can use its Elevation from Level parameter to put it on the desk (an illusion of a relationship). When I move the desk I need to remember to select the TV too (or make a group...or...I digress). I get the clever idea, "Make this family Work Plane-Based, that's easy!"


Using Rotate with Copy should give me the result I want in the first image and it does until I check the box for Work Plane-Based. The angle I decide I want between the screens is 22.5 degrees. I added a couple reference planes for the images to help see what happens, the desired result.


That's what I want except that they should be hosted by the desk, not relying on using the Elevation from Level parameter. When I use Rotate with the Copy option after editing the TV family to make it Work Plane-Based (also Always Vertical is checked) I get this result.


Notice the TV angle itself is correct but it's location is wrong...and a warning message appeared to help me notice... It's been moved/copied by double the input value of 22.5 degrees using the origin of rotation correctly and managed to maintain the angle I wanted. This next image summarizes what happened.


That's weird enough on its own but I can go weird by one more, un-check the TV's Always Vertical parameter. After running through the exercise again I get this outcome.


This time it applied the rotation input angle of 22.5 degrees x 2 = 45 degrees to both rotating the family and its position. This time it did it fully wrong while the previous time it only did it half wrong.

Introduce a Floor, instead of a desk family, into the mix and place the TV family before it is Work Plane-Base with Always Vertical and this happens. No rotation, just copy and in the same place no less.


When the TV family is Work Plane-Based and Always Vertical is used then it works wrong in the same way as relying on the desk's face as the host did.

I imagine Revit is attempting to relate the rotation and copy actions to the family's host, since that is the work plane the family is hosted by. Clearly it is unable to do so properly. I think it is reasonable to expect to get the same result whether level based or work plane-based. This post and the images are from using Revit 2020.2 but I did the same things in Revit 2016 with the same results. This has been around for quite awhile now.

If it is any consolation, the Mirror and Polar Array tools don't suffer from this malady but each have their own prep work required to make them a ready replacement.

Thursday, November 28, 2019

Revit 2020.2 Internal Origin Redux

Happy Thanksgiving to those who observe!

One little thing I'm thankful for, I got a file yesterday from Autodesk (TurnOffInternalOrigin.Dyn) that is meant to be run in Dynamo Player (it's a custom node in testing ATM). You can download the file, place it wherever your Dynamo Player is looking for files already or in Dynamo Player just browse to wherever you placed the file. Click the play button (see image) and it will turn off the Internal Origin in all views. This approach means very little Dynamo knowledge is necessary, just enough to get Dynamo Player open and find the file.


Since I already put in some time with my own graph which included the Survey Point and Project Base Point I decided I'd like to be able to turn on/off all three or just the internal origin or some combination. I modified my graph (Control Coordinate Graphics.dyn) to provide input options (see image).


When you use Dynamo player you can edit the input options through On/Off switches (see image).


Click the little Properties button (looks like a old Macintosh computer to me). Clicking the toggle will make the statement either true or false for each "hide" question. All three true = all off for example. Remember my graph is dependent on a node from the Archilib package, make sure you've installed that before trying to use it.

Tuesday, November 26, 2019

Revit 2020.2 Turn Off Internal Origin - Dynamo Option

In a thread at RFO John Pierson (Parallax Team, and Dynamo guru) got the ball rolling with a video link that described overriding graphics in views. I picked up the ball and created the graph but missed an essential but tiny setting for one node to make it work (Lacing - Cross Product).

The Dynamo Graph looks like this (click to Download).


You can use Dynamo, with this graph, to turn off the Internal Origin, Survey Point, and Project Base Point in floor and ceiling plans, sections, elevations and 3D views. Change the code block from False to True and it will turn them all on instead.

Regarding Jean-Marc's comment: I think he was suggesting this instead.

Saturday, November 23, 2019

Zoning Clearance Thoughts

A long time fellow Revit traveler reached out to me via Revit Lifeline last night asking about zoning clearance ideas. Where he lives and works they want designers to demonstrate the building is not too tall. They also want them to prove it doesn't extend into a zone that leans back into the site. All in all the code reduces the size of the building that can be built on any given property that falls under its jurisdiction.

I have heard and read about this concern many times over the years. But in response last night, I mocked up a quick example to see if it met his needs (waiting to hear back). I thought, "Blog post? I just posted something the other day...don't get carried away. Yeah, but you've only posted like twice this year slacker! So a blog post it is then..."

Here's a few images to ponder first. Pretty fancy house design eh? Doors and windows are so last century. I CAN design YOUR next home, just call when you're ready...operators are standing by.





The upper surface is a thin floor which is manipulated through Dynamo and Shape Editing. Lauren Schmidt's LandArchBIM blog is a very nice source for land techniques and I stole her graph ideas in this post to make it. Her post explains the technique relies on a sub-region to match whatever hardscape shape (property boundary in this case) is necessary. I used the floor's offset parameter to move it up above the surface by the zoning height required.

The front and back property boundary clearance requirement is built with a railing and profile. The fact that railings can be hosted by toposurface now opens this door wide. The surface form might not lend itself to a nice clean railing though, mileage will vary. You can see the rear railing is a little deformed in a couple spots. I built parameters into the profile so I could (using types) vary the height of the angle portion, change the angle, change the height above property (spring point of the lean) and the thickness of the railing.

I created a specific material to assign to it all so it can be mostly transparent.

My example is admittedly simplistic. How many property boundaries are really a simple rectangle? Pretty rare, about as rare as a purple unicorn that uses Revit? A front or rear boundary that has arcs and many segments will probably pose some issues creating a hosted railing. I can imagine things going wrong but I'll wait until I'm dealing with something specific to worry about that.

The file I mocked this up is in Revit 2020.2 and the dynamo graph (link has both RVT and Graph) is so simple that this screen shot would help you build it nearly a fast as downloading and opening it up. That's what I did with Lauren's example. You do need the packages I've circled.


Oh, the mockup has a massing element too, you'll have to turn massing on though. At first I thought I'd sweep a profile along the property edge defined by the upper surface. After I did that I thought of the railing. The learning curve is much less steep for a railing than massing, bonus being much faster too.

Decided to add a couple more images. I realized that I could have turned off the sub-category Interior Edges for Floors to hide the tessellation in the other images. It also occurred to me that another railing and profile configuration could deal with the top. I just created another type from my existing profile family to make it a 90 degree railing. A separate wide profile without a vertical portion would provide just a top surface. The floor and railing approach don't result in the same surfaces but within reason? If reason can be applied to a zoning requirement?



Here's both visible...


Monday, November 18, 2019

Revit 2020.2 - Internal Origin

A quick post to mention this since I've already run into this issue with users several times. The latest update for Revit introduces a new icon to mark the location of the file's Internal Origin. This is what it looks like in the 3D view.


It's off in all views initially, in the stock templates. Reveal Elements will display it quickly in a view without having to use Visibility/Graphics to show it. It can't be selected, it's just visible to help understand where it is.

Edit: It seems existing projects that are opened in 2020.2 have this Internal Origin turned on in all views (many). That's a bug in my opinion. They should not be turning this on. Though, in my own testing it is not getting turned on with upgraded files. It seems to be existing 2020 files that get this turned after opening it with the 2020.2.

Project Base Point - You won't see the clip when you select it. Move it away from the internal origin and it is automatically behaving as if it isn't clipped. In other words, it isn't clipped anymore. We couldn't really move the project origin, only the Project Coordinate System could be adjusted to provide a local coordinate reference for the Spot Coordinate tool, for example.

The Survey Point remains much the same.

When dealing with linked files you'll find that the icons for each of these is also visible but halftone (gray) to differentiate from the host file's own icons. You can snap to the links icon's to help align the files, using the Move tool for example.

I'll have to return to the subject once we've gotten fully acquainted.

Edit: 11/24/2019

I traded a couple emails with Autodesk staff on this. My understanding (not a developer) is this is not merely something they overlooked. Consider when a 2020 file is opened in 2020.2 it is not going through an upgrade because the file format is compatible. This creates a scenario where they are not activating upgrade code to resolve the existing file's structure with a new version's structure.

Unfortunately this new subcategory gets enabled and its visible status is "on" at the outset. It's my understanding that "off" isn't an option...in this scenario...without also creating an upgrade scenario...which is conceptually a no-go...within a release year.

Upgraded files go through an upgrade process which imposes rules on that process...which includes a task that deliberately "turns off" this new subcategory. It's a quirk of the file open sequence/process.

I think they didn't expect it to be a significant issue. It doesn't print after all. It can negatively affect zooming behavior in many views though. User perceptions can't be ignored either. An unexpected "thing" encroaching on views is "bad"...similar to seeing a view's crop boundary when not intended.

To their credit, they asked if I agreed they should create a Dynamo solution to turn it off in all views. Naturally I encouraged them to DO IT! Hopefully we'll be able to say that such a solution exists soon.