Naming Conventions

Components in a Rhino model are things like layers, annotation styles, block definitions, groups, objects, lights, materials..., etc. Some of them (layers, groups, block definitions, annotation styles..., etc.) require unique names in a model. Some others (objects, lights, materials..., etc.) can share names.

  • Names cannot contain these symbols:
    Tab, Delete (U+0080), or any other control character (UNICODE code point <= U+001F)
  • Names cannot begin with these symbols:
    ( ) [ ] { }
  • Spaces at the begin or end of a name are ignored.
  • Rhino uses SPACE-COLON-SPACE " : " to add file name prefixes to these unique name components (groups, block definitions, line patterns, hatch patterns, annotation styles) from linked block and worksession reference models. You are STRONGLY encouraged to avoid using SPACE-COLON-SPACE in component names.

Sorting order of names

1 (Space) 13 / (Slash) 25 | (Pipe)
2 ! (Exclamation point) 14 : (Colon) 26 } (Right brace)
3 " (Double quote) 15 ; (Semicolon) 27 ~ (Tilde)
4 # (Hash) 16 ? (Question mark) 28 + (Plus)
5 $ (Dollar) 17 @ (At) 29 < (Less than)
6 % (Percent) 18 [ (Left bracket) 30 = (Equal)
7 & (Ampersand) 19 \ (Back slash) 31 > (Greater than)
8 ( (Left paren) 20 ] (Right bracket) 32~41 0~9 (Numbers)
9 ) (Right paren) 21 ^ (Carrot) 42 ' (Apostrophe)
10 * (Asterisk) 22 _ (Underscore) 43 - (Hyphen)
11 , (Comma) 23 ` (Back tick) 44~69 A~Z (Upper case)
12 . (Period) 24 { (Left brace) 70~95 a~z (Lower case)

Any symbol not listed above is sorted after lower case z ('z') by UNICODE code point value.

 

The C++ SDK Tool for sorting component names (layer, annotation style, block, group, ...):

int ON_wString::CompareAttributeName()

See also

Unicode control characters