Text Styles and annotation enhancements

Text Styles would be a great addition to Rhino. Same concept as for dim styles, except for the model space field (see 2. below). Adobe’s InDesign text style concept is a great example. Obviously Rhino’s text styles would be far more simple since it is not a layout software.

DimScale command. It would allow to set the model space scale for all dimension styles at once, the same way TextScale works. Setting the model space scale within the dim style is not working well when working with different dimension densities on different layout scales (1:100, …, 1:5). It either requires one to have an individual dim style for every layout scale (which is unnecessary) or going through all dim styles and changing the scale factor, when working on different parts of the drawing, that are on different layouts.

In addition to the above, there should be a command to set the model space scale for all annotation objects at once. It should unify the following:

  • SetLinetypeScale (command exists)
  • TextScale (command exists)
  • HatchScale (command exists)
  • DimScale (new command, see above 2. )

It would be useful to have the model space scale as an object property. This would allow to give different parts of the drawing different model space scales. Often one draws a 1:100 drawing besides a 1:20. In this scenario the model space scaling currently fits only one of the drawings and has to be switched constantly. If I could assign different model space scales for different objects, I could set an appropriate scale for the 1:100 and a different one for the 1:20.

Thanks for the feedback.

  1. I’ve heard Text Styles requested, but not often it seems. Because of that, its hard to push it ahead of other things that are more common requests. It would be nice to have though.

  2. It sounds like you’re talking about making drawings using Layouts in this section. If that’s true, I’m unclear about why you would need a separate dimstyle for each detail scale. Do you work with annotation scaling on? Do dimensions not scale correctly in details or in Layout space? The idea is that if you set a size (eg textheight) to 5mm, it should scale to be 5mm in Layout space no matter what the scale of a detail you place it in, or whether its in the layout. Is there something else you want or that I don’t get?

  3. The relationship between all of those scales is definitely hard to manage. The ways they can be controlled are not consistent, mostly because they were added individually at different times by different people and under the restrictions of not breaking things that were already in place. Not that any of that makes them more usable, but it may help explain why somebody doesn’t just fix it.

  4. We may get to the point of having by object and by viewport scales for everything. It seems like a long way off even if somebody here decided it was really a good idea, which it may well be. I think that one of the hard questions we have is how to keep it all straight if there are several ways to make something change size and it becomes hard to tell what is controlling at any time. Managing scaling for printing and for on-screen use are also kind of different. For instance, if you turn on PrintDisplay, linetype scale works differently than with it off, but at least for some people, that makes it possible to get something to print predictably.

Hi Lowell, All.

This is imo a serious issue; I recently tried to explain the workings of this to a client and it was impossible to convey it in a straightforward way. It directly relates to discussions about the GUI and I think it is another example of something that should not be left laying about in V6 to be picked up in V7.

Related to this:

Why not turn PrintDisplay on by default for layouts? These are after all pages to be printed and as such more than anything need to reflect what will come out of the printer.


1 Like

@lowell, thanks for your answer.

1.I agreee text styles seem uncommon in a 3D modeler and we did not require it much before when we used Rhino solely as a 3d modeler. We are currently using Rhino for an architectural project, single family home size. Since it is a rather small project, we are experimenting to use Rhino for everything, from 3D modeling to construction set docs. Especially with layout, dimensioning and text we are having sever issues regarding workflow, speed and useability. We appreciated Text Styles very much in 2D architectural drafting software that we normally use. If Rhino layouts should ever become applicable for serious drawings, text styles imo are a must have.

2.I am talking about the Model space scale field in Tools-Options-Document Properties-Annotation-Dimensions, please see the following image.

I would like to be able to set this field for all dim styles at once via a command.

This is for the following reason: I have one model with all my drafting curves etc. In the same file I have many different layouts with detail views. The detail views have different scale factors. For all detail views I use the same dim style, no matter if this is a 1:5 drawing or 1:50 drawing, since dims have to look the same on all my drawings. I am using annotation scaling. My problem is not with how the dims look in the detail views, but how dims clutter my model. Please see the following screenshots.

  Model, floor plan, dims´ Model space scale adjusted for 1:50 detail views

Model, terrace detail, will be placed on a 1:5 scaled detail view

Those have to be the same dim styles. They look good with the model parts that are on 1:50 detail views, because I set up Model space scale to fit with those model parts. They clutter the model parts that are smaller and are placed on 1:5 detail views. So I either have to go to Tools-Options-Document Properties-Annotation-Dimensions and change the Model space scale, or I do all the drafting in the layout´s detail view. While working one constantly has to jump between the different parts of the drawing. Both workarounds are useless regarding time/workflow and useability.

I tried to make a script to make this command myself, but Model space scale is not accessible via -Options, nor via RhinoPython and also not via rhinocommon.

3.Couldn´t you add an additional command that unifies the one mentioned and over time the old ones can be deprecated. This is the least important wish, since it could be scripted if the appropriate functions are all accessible.

4.This would be the solution to no. 2. In the model i select the annotation objects that are placed on layouts with 1:50 detail view scales and I assign the Model space scale factor to look good for 1:50, and so on…This would be another property of the annotation object, such as e.g. Arrows (see screenshot)

To sum this up. I know many young architectural offices that would use Rhino also for their 2D drafting. All the functionality is basically there. It is just not thought through till the end. It seems like only the last 10% are missing to make it a great 2D drafting program as well. Just for the layout and annotation part I would recommend to have a look at programs such as ArchiCAD, Revit or Allplan.

Yes, I’ve also been frustrated trying to explain the relationship between those scales. I guess the reason is that there isn’t really a relationship.

And turning PrintDisplay on by default would work for me. I almost always turn it on when I’m doing anything real in layouts.


I’m fine with that. This was off by default in layouts only because

  • PrintDisplay mode is slower to display than standard mode
  • Thick curves can get in the way when modelling

The “thick curves in the way” argument is probably pretty lame when it comes to layouts. Display speed is always an issue and especially when it comes to layouts. Hopefully we’ll be able to improve the speed to a point where this argument is also a non-issue.

  1. OK, I register your strong request for Text Style.

  2. I see that if you try to draft with annotations in model space viewports you will have problems. I recently did a set of working drawings for a house. First one I’ve done completely in Rhino. I did what you mentioned - did all the drafting in Layouts. I made details, set the scales and locked the details. Then it worked pretty well (much better than trying to do it in model space) to draft in the model space view of the details. With the details locked, zooming and panning worked right. And what was on the screen was a lot closer to what was going to print.
    I put titles and a few things in paper space, but didn’t really get comfortable with dimensioning in paper space.

If we did have a single place to change Model Space Dimension style, I don’t see that it would solve your problem. It seems like it would have to be per viewport to do that, but even then, you’d have to change it when you zoomed in or out very far, wouldn’t you?

Maybe the difference between wanting to work in normal model space views vs in detail model space views is what makes this confusing to me, or maybe there’s still something I still don’t get.

  1. I guess it would be possible to wire up a command to change those scales by the same multiplier all at once, but I’m not sure it would do much good. How would you see it working? Would a single number make any sense, or would the command multiply everythign by 2 or 1/2, etc?

  2. Adding a field where you suggested would mean that it would be a per-object setting. That’s possible now through the Property Overrides on Dimension Object Properties. Its 2 more picks to do it that way though. And its not scriptable. Maybe adding that would help. I haven’t quite digested why that’s a good idea yet. I’ll read back through all of this and see if that helps me understand.

Thanks for the input on it all.



1.Thank you…

2.-3.I think it is hard to explain how the current Rhino setup kills a fast drafting workflow. I will give it another try: During drafting, the model space scales have to be changed constantly when moving from one part of the model view (e.g. floor plan, placed on layout with 1:50 scale) to another (e.g. construction detail, placed on layout with 1:5 scale). I know that all the settings can be found, unfortunately this is in some sub-sub-sub menu and in 4 different places. In order to enhance drafting speed:

Please give us a command to change all the different scale factors in the screenshots below at once.

In addition to that, please unify how the scaling between model and layout units is handled. Linetype scaling adjusts to unit differences automatically, the others do not. In the example above the file is set to model units meter, layout units millimeter, the scaling in the screenshot is for a 1:50 drawing to display correctly in the model viewport.

4.Making this an object property would do away with the requirement to constantly switch the scale factor while drafting (see 2.-3.). This would be for all geometry that involves model space scaling (linetype, hatches, annotations, text). The concept of the property override could be transferred to the other types of geometry. Again, it should also be accessible via a command.

Thanks for taking it into account. I hope I could clarify a bit what we are asking for.

Do you do your drafting in Model space viewports that are not in Details on Layouts?
Or do you work in standard Model space viewports that are not in Details?


Sorry, I mis-typed that:
Should be
Do you do your drafting in Model space viewports that ARE in Details on Layouts?
Or do you work in standard Model space viewports that ARE NOT in Details?

I do the drafting in Model space viewports that ARE NOT in Details?

OK, Sorry it took me so long to ask that.
It is certainly true that you have to change annotation scales often if you do it that way.

Is there a reason (or several reasons) that you don’t work in Layouts and Details when you do drafting?
That’s how we’ve designed this to work. Annotation are automatically scaled that way.


Thanks for clarifying this.

The reason for working in a normal Model space viewport are many:

  • Detail views on layouts usually show only a subset of the information present in the complete model (HideInDetail,HideLayersInDetail). This is due to many reasons, e.g. we are hiding information that is still under development or under discussion with the client, or we prepare drawings for specific trades (wood workers, masons, etc.). In our main model we want all the information present. Layouts are usually quite complex setups regarding what is shown and hidden and thus they are quite static. For this small project we have 8 main layouts and around 30 other layouts that are e.g. trade specific.

  • Detail views on layouts often show a clipped part of the complete model. E.g. only a few specific details, relevant for a certain company. In the the normal Model space viewport all the information is laid out side by side, be it with references or directly in the same file.

  • When a layout has been setup its arrangement of detail viewports, scale, position etc. must not change. This is due to legal aspects of building projects. A drawing/layout as soon as printed is a signed and stamped document. Ideally only the content of the detail views evolves throughout a project (all changes are noted in a change index on the layout).

The drafting is done in a normal Model viewport because e.g.

  • We want to draw construction lines from a groundfloorplan to a section. On the layout detail view we would only see the groundfloorplan.
  • Or we want to make some hidden lines of parts that are in 3D.
  • Etc…

I hope this info helps a bit to better understand a classical architectural use case. Please feel free to ask if something is unclear. I would send a file, but the project is a bit confidential and I need permission from the client first.

I can understand the need to do the things you listed, but I still don’t see how that makes annotating in model space better than annotating in details.
I would expect to go to model space for some things like your example of aligning something in one view to something in another, but that doesn’t seem to be dealing with text and dimensions.
But if that’s what works for you, I don’t want to make it harder.

It would be possible to add a global dimension scale for model space.
Making all of the annotation objects scale compatibly is a bit different, but if its only for model space it may work.
I still need to think it through a lot more carefully but I think I have a pretty good idea of the direction.


Thanks a lot for looking into this.

Following a few situations when text and dimensions are best to be edited together with geometry in model space viewports, going from happening very often to less often:

  • Adjustments to the model: E.g. floor plan changes, section has to be adjusted (section is not visible on the same layout), mostly in PointsOn mode, we select the points of the geometry together with the points of the dimensions and text.

  • When layouts are hiding parts of the model, adjustments are not possible since we either would have to destroy our hide/show setup in the detail view, or we would only adjust parts of the model.

  • We often do not use the layouts to adjust dimensions because with 10+ layouts, even on a high dpi screen, it is hard to access them quickly via tabs. Please see this other post Wish V6: Better Layout Management

Thanks for the clarifications

Maybe @stevebaer will look at the layout and printing post. That’s more in his area.