Enums start at 0 unless specified, but doesn’t hurt to show them anyway.
I filed your request here: https://mcneel.myjetbrains.com/youtrack/issue/WWW-2112/Enum-needs-to-show-numeric-values.
And it’s fixed now.
wow that was fast - great - thanks
Dear @mkarimi
there is another thing that would be great - especially for the link from this forum to the documentation:
if there is a Function with multiple Signatures / Implementations - it would be great, if the corresponding list item /
Example
https://developer.rhino3d.com/api/rhinocommon/rhino.input.custom.getpoint/constrain
it would be nice to send / post / bookmark a direct link to
Boolean Constrain(
Mesh mesh,
Boolean allowPickingPointOffObject
)
Example-Implementation
this forum those a great job in linking to paragraphs - if they have a header - mouse-over on the header “example-implementation” and you will see a oxo chain-icon to copy the link
this link will for example lead to an paragraph inside a post I wrote…
I still think those multiple implementation could be nicer presented. - an overview is missing - the massive “Getpoint.Constrain” is a nice Example that would require some list, somewhere, that give a fast overview on all implementations.
thanks again for you work - kind regards. Tom
The old documentation would give great links like this inline: ChangeQueue Constructor (Guid, UInt32, ViewInfo, DisplayPipelineAttributes, Boolean, Boolean)
or the same link on its own as a paragraph:
I’d like to have that back for the new documentation.
Events are missing passed arguments, example:
RhinoCommon->Rhino->RhinoDoc->SelectObjects
Also: it seems that lots of events have a sender parameter, but in the examples I’ve checked it’s mostly unused.
The Microsoft C# help has a good format: description(s) followed by an example. Sometimes the examples are used over and over, and you really have to dig through them to find the actual use case (which sucks because many examples are very convoluted). The general format is good though.
I find almost everything C# related to be a dog’s breakfast. The code is constantly changing. They keep adding stuff to eliminate small portions of code, which for me, degrades readability, and is really unnecessary with intellisense. Most books on C# are terrible. I finally found a few good references.
I’m trying to get out of the habit of googling stuff to find answers, but often times I have to. The development speed is really slow compared to AutoLISP and even C#/.NET for AutoCAD. The best resources for AutoLISP aren’t from Autodesk. AfraLISP.net was what kicked off my programming journey. Maybe a community effort would be a consideration?
Having samples does help, but they are hard to sift through. Simpler samples with variations would better help demonstrate the features.
Thanks @Tom_P , I filed your request here:
https://mcneel.myjetbrains.com/youtrack/issue/WWW-2113/Scroll-to-headings
@nathanletwory , this has already been discussed. I’m happy to do whatever if you can get a consensus.
https://mcneel.myjetbrains.com/youtrack/issue/WWW-2047/Developer-docs-readability-of-information-in-tree-view-add-one-extra-level-of-nesting
This is a new property and documentation is probably in progress. Looks like it was added by @Joshua_Kennedy , Joshua can you add a description in the comments?
Thanks, logged it here:
https://mcneel.myjetbrains.com/youtrack/issue/WWW-2114/Events-are-missing-passed-arguments
@Nathan_Bossett I pushed a commit to add this to signature of the event. The type hyperlink doesn’t work yet but at least you should be able to see it in plain text for now
Thanks. It was the ‘guess the parms’ game that was the important thing to fix anyway!
Yep, I opened an issue here. The functions were also missing documentation in C++ which is why they didn’t get a description when wrapped.
In some cases I see what look like close-kin but not duplicate entries for properties/methods.
Example:
the two IsDocumentControlled properties for Mesh
Mesh class (rhino3d.com)
Is this the result of diamond/multiple inheritance or are they identically named from different inheritance trees?
If they’re the same property/method, ideally I’d expect to see a single entry and a list of inheritance paths where the existing class details are at the top of the property/method doc.
Related: is there a graphical class model doc somewhere showing all of the inheritance trees and such?
The search:
- can you make the returned list much longer on a search? I’d rather wade through results than miss the one I want
- Would it be possible to supply an advanced search, which gives options like limiting the search to the name or including the descriptions?
Specific example: RhinoDoc.ActiveDoc.Objects.GetSelectedObjects isn’t in the search results for ‘selected’ and there’s no ‘see more’ button/link or equivalent.
Details, if you want a use case:
In a plugin, I maintain a list of currently selected objects by watching the selection events. When the plugin starts up, though, the user may have already selected some things and I need to initialize the list. I spent a lot of time with searching and browsing and guessing individual keywords like ‘selected’, ‘currently selected’, ‘current’, ‘selection’, etc…
What I needed turned out to be
RhinoDoc.ActiveDoc.Objects.GetSelectedObjects
which I ultimately found by guessing in Visual Studio. It’s in the help file once I knew which tree branches to follow.
It doesn’t even show up in the list when you search for ‘selected’ in the API. I understand that it’s not a very unique keyword to pick, but as I said I’d rather wade through a swamp to get to the goal than not get to the goal.
This is off topic, but…
For these cases, we typically recommend setting a dirty flag when the events are fired. When you eventually need to look at the selected objects you can check the dirty flag and decide if you need to call GetSelectedObjects or not.
It is also advisable to not use ActiveDoc if you don’t need to. ActiveDoc can be null in the case when Rhino is running headless. It can also be a different doc than the one you expect when running on Mac.
I can increase the limit or add a show more button, But I couldn’t find it in the source.
Can you find it in the old docs using search?
https://mcneel.github.io/rhinocommon-api-docs/api/RhinoCommon/search.html?SearchText=RhinoDoc.ActiveDoc.Objects.GetSelectedObjects
dirty flag - will keep in mind but for my demo/learning example I do want to do an update on every selection/deselection.
ActiveDoc - So if it’s not recommended to use ActiveDoc, then what’s recommended for finding out what if anything is selected in the two cases of:
- plugin is starting, Enabled(true) has just been called, and it wants to know what if anything is selected
- using the dirty flag,
A command plugin does get a doc parm when the command is run, but an event watcher seems to receive empty Sender parms for most of the events I’ve checked.
(topic split is fine)