RhinoCommon API documentation - wishes / critique

Dear @stevebaer (I think you re the right person ?)
the new documentation / webpage still has some limitations / aspects I do not like.
(Mac os X, Safari)

collapsing not working (bug?)

currently (mac os x safari) collapsing / expanding is not working in the main section / window:
mouse over on Constructors (5) in this case shows a mouse-pointer change to a hand-symbol.
But no action on click.


Expanding / collapsing on the left tree-view works.

collapsing / expanding for enums

This bug is extremely annoying for enums:


I would suggest that enums values should be expanded by default.

Type-Parameters

… should be interactive as well.
For example in this case I would expect “<BrepLoop”> to be a link.

Readability

Maybe I am not used to the new layout - but especially for Functions with multiple Signatures / Parameter Settings the readability should be improved.
I also think, that the inconsistency of links for types (some types are link, blue, underlined, some are grayed out not linked, ) limits the ability to get a fast overview.
This is the same for the initial definition - this array might get a very light background color.
As it is for the parameter-Details.

I don’ t think the full Namespace / path “Rhino.Geometry.Point3d” is necessary.
If someone needs this info, the link will show it.
a single Word would increase readability.

Layout

I think the overall Layout still has some potential to be easier to read and be more pleasant / readable…

hopefully this is some work in progress and we ll see some improvements.
Thanks for your effort.

Please keep the link to the old webpage as long as there are these kind of issues.

kind regards -tom

2 Likes

Thanks for the feedback. @mkarimi is working on this project at the moment.

We hit the limitations of what the old tool we used to generate API documentation could do and are now creating the whole thing from scratch using tools we wrote. Now we have the ability to make adjustments based on critiques like yours.

2 Likes

Thanks for the very detailed feedback @Tom_P , the new documentation site is very much work in progress and we’ll keep improving it as we get more feedback. The old site will be up for the foreseeable future.

I think I broke this last Friday. I’ll push a fix for it in a bit.

1 Like

This is fixed now. Your browser may need a hard refresh

1 Like

great - thanks.

@mkarimi

ups - there are few things missing…

for example dynamicDraw Event for Input.Custom.GetPoint:

https://mcneel.github.io/rhinocommon-api-docs/api/RhinoCommon/html/Events_T_Rhino_Input_Custom_GetPoint.htm

https://developer.rhino3d.com/api/rhinocommon/rhino.input.custom.getpoint

FWIW, it has always been like that, can you explain why this is suddenly not needed? I have a strong preference for showing the whole path.

3 Likes

Dear @Gijs
yes you re right - I did not compare new and old side by side for all points I wrote.
I was more searching for a reason why my eyes / my brain does need more effort to orientate visually on the new layout - and I am not a Graphic-Designer…

Maybe it s nice that both times the Parameter-Names are shown - in the Signature and in the Parameter-Description - the font is italic ?
and my guess - at least for my brain - it is easy to skip to the Parameter in question because of the 3 lines - instead of one…

And the old version is more homogenous as all Types are linked and therefor have the same style. And I think it is easy to visually skip all those “Type:…” lines

Maybe it just disturbed me to have a gray short Word “Brep”, and a blue underlined long “.Point3d”.

on the other hand I like the condensed approach of the parameters that uses less screen-space…

Did you think about showing some information in a small box on Mouse-over ?
Not sure if this is nice…
MouseOver Functionname → Description, return value
MouseOver Parametername → Parameterdescription
MouseOver Type-Info → FullPath
MouseUp Type-Info → link

Mouseover is seen as very bad for mobile devices …

Maybe ask explicit for some more feedback from other developers ?

Another wish:

Annotations / Comments

I would love to see annotations / comments in the API

“User Contributed Notes”

sometimes there are small bits of informations missing - that would be nice to have them in the documentation, and not to search for in the forum.

One of those small examples:
The Get Result “Nothing” will online happen if AcceptNothing is enabled.
And I think it would be great if it would be enabled by default for Custom GetOption.
This few lines of Info would make more sense as a comment in the Documentation, then here in this forum.
Of course it would be super cool, to link discourse mcneel to the documentation.
There could be a tag - like Keyword (in the forum) to link to the documentation.
And the the documentation could show a corresponding “important topics on discourse” section…

I love the upward / downward rating at the php user contributed notes

There is already an older topic about this (also from me):

kind regards - tom

1 Like

This is a bug that I need to fix, the idea is to have all the types be linked.

1 Like

:+1:

I took some of your points above and updated the way parameters are rendered.
Hopefully you’re both a bit happier now.

I’m hesitant to hide some of the information in tooltips because of discoverability issue like you pointed out.

:heart:
nice.
two lines are a good compromise i think.
but maybe also ask some of your colleagues at the mc neel stuff…

personally i do not like underlined links ;- (
just to colors for the types - with and without link…

EDIT:
closer to this:
no underline,
link = more saturation
no link = less saturation, same brightness (still not perfect…)

2 Likes

This is fixed now for all Rhino types. System types like int and double are still not linked. I’ll fix that at some point.

3 Likes

Cool idea, but I think the reasons given back then still apply today. It’s not a matter of technology, I don’t think we have the bandwidth to provide support and moderation in multiple different channels. Discourse is where most of us are active and can help users get answers.

Of course it would be super cool, to link discourse mcneel to the documentation

This is actually a great idea, we can probably make a link to search the forums for the namespace you’re looking at.

my idea would not be search the forum - but a back-link / reversing - or matching by tags.

backlink

let s say I link to the documentation here in the discourse-forum somethink like

“Dear Ruedi - you can easily calculate this with the crossproduct

then the api-Documentation for the crossproduct can show an automatic link back to the forum - maybe with a small summery.

what i don t like that there will be now filtering and a lot of noise…/ not many valuable info.

tag

I would prefer to use a tag or keyword on a post level - that would allow an explicit connection.

#APIaddition
even if the discourse software does not recognise it like a tag.

A simple approach would be to use a standard title for a the link. in the following Example this title is “Additional API Info”

Please check topic order of Transformation matrix if you multiply them. Additional API Info

and as it is a link with exactly this title it could backlink automatically from the Documentation to this forum… (and users have to explicit do it)

varia…

by the way I think the php user comments are not moderated but self organized with downvotes / upvotes and flags…by the community ((???) not sure)

@mkarimi, i’ve tried to use the new html help system during the past week and found that there is still a lot which makes it very hard to find the required information. Please see below images where i used the Brep.CreatePatch method for comparison.

The old sandcastle generated html help page:

The new help looks like this:

Let’s start from the top: The tab titles in the browser of the old help system displayed the method name “Brep.CreatePatch Method (…)” while the new system always displays the link with the https:// stripped: developer.rhino3d.com/api/Rhino

When i have multiple tabs open in the browser, it is almost impossible to to find what i have already opened.

In the new help system, imho the tree column on the left shows 90% unneccessary information because the method arguments are displayed behind the method names. Since this is all displayed in the same font and without line breaks, i think nobody will ever make the column wide enough to display what is shown. I mean this:

was displayed in a very compact way in the old help system while it did not show any other method once the method page was entered:

grafik

The CreatePatch method is available in 3 different ‘flavours’, having different method overloads. The old system does have one extra parent entry for CreatePatch in the namespace tree, but the new system instead shows 3 times the same entry in the tree. Regardless on which entry you click, you get the same page in the right column listing all 3 methods below each other which requires to scroll and find the method you’re searching for. This means, 2/3 of information in the right column is shown which the user is not interested in. This does make the tree much longer having all these extra items. A single parent item (with subitems) would be preferred instead.

The tree view in the old system was imho easier to read and find information in as it did omit method arguments for most of the entries. It did show this information only when the parent item of CreatePatch was expanded and when a parent item existed. The new tree is imho harder to use visually because the intendation of the first tree level is more narrow then all following levels. (it saves a bit of screen space though).

A better text intendation in the right column could possibly help to make the content more readable along with better differentiable font styling. The old system was using 2 intendation levels with constant size below the larger text headlines:

The new system, also uses 2 intendation levels but the width for the first level is not constant. I think the Parameters and Returns headlines should start at the same intendation level as the Description headline:

What makes the right column of the new help system less readable is imho:

  • too small font for the Description, Parameters, Returns headlines
  • the Syntax headline is missing and the content uses random line breaks for the parameter names
  • eg. the Parameter headline should use a larger font as the parameter names
  • ideally, the parameter names might be non bold but italic as the in the old system

The parameter name description is less usable in the new system. It is missing the type description in many cases. I mean this:

was shown like below in the old system and helped the user to understand how the Type Enumerable of geometryBase must be passed to the method:

It also was possible to click on this link and get right into the microsoft docs in the old system. The new system just displays the type name in a link color, but if you hover over the link, you’ll find out it’s actually not a link and the mouse cursor changes to a “no parking here” symbol. :roll_eyes:

The syntax rectangle in the old section had a “copy” feature in the upper right which was quite useful to get the argument (parameter) names without retyping them. The new system does not have this yet.

The Returns section in the new system does not display the Type of the returned value. Using the CreatePatch method for example it reads:

A brep fit through input on success, or None on error.

This might be confusing for users of the C# language, i guess there is no None (only in Python), shouldn’t this be Null instead ?

I don’t want to complain too much here but have to conclude, the old sandcastle system was making a clever use of html font styling, line heights, intendation and colors. Probably i’ve got used to it too much which makes it hard to adopt.

The dark mode in the new system is highly welcome but it requires slight color tune ups especially for the parameter types (the non links). The bread crump links on top of the new system’s right column are useful, something which the old system did not have.

_
c.

3 Likes

Please do complain. We hit a spot where we needed to start from scratch in order to really make improvements in documentation. This will take some time.

1 Like

I guess it’s a pretty hard css styling job since you aim for desktop and mobile support on multiple browsers. Big props for this task !

Any chance to sqeeze out another chm with the old sandcastle using Rhino 8 methods ? (I’ve just found that all links i had are now pointing to the new html docs which caused some serious anxiety)

_
c.

Dear @clement

I agree with your points.

one of the most important points ist the webpage-title in my option !

I also agree that the way multiple signatures / flavours of the same are presented should be more readable.

regarding parameters and links - Morteza already did some change, after my critique - can you please tell, if you (not?) agree, that compared to the initial screenshot there is already some improvement ?

the similar color on non-linked types is my fault:
compared to the old color-setup i think it s an improvement - see old screenshots above.
On mac os x / safari the link / no-link color is easy to distinguish.