Drafthorse - Layout Management tools for Grasshopper

Hey Discourse!
I just put out the first public release of DraftHorse on food4rhino.

It’s a plugin I’ve been working on for a while as a replacement for Fabtools’ layout creation components. It build on the originals by adding some of the capabilities of Rhino 7, using Layout User Text and Document User Text in combination with Block Text to make Title Blocks more parametrically controllable.

I’m calling it a Beta because it hasn’t gotten much testing out in the wild, but the code is also available on Github if you want to dig in or even contribute to the project.

Please give it a try and let me know how it works for you!


If this works half as good as Fabtools did this is a significant contribution.

Thanks for sharing!


Thanks for sharing this tool! I’ll check it out.

That is something that I was really missing in my work. Good job, and huge gratitude


First of all, thank you very much for sharing this tool, because I really missed the version which was saved me a lot of time before. I tested it quickly this evening, and when generating the pdf, the saved document appears as marked in the attached image every time.

Thanks @zsolt.gutleber - this is probably a bug related to my lack of testing in SI units - At first glance, it looks like it’s using the millimeters as some other unit - any chance it’s exactly 25.4x in both directions? I’ll dig in to this tonight

1 Like

@zsolt.gutleber can you post your 3dm file please?

I’m still confused as to what it does. It doesn’t seem very intuitive…

:face_with_monocle: :thinking: :thought_balloon: huah? :face_with_raised_eyebrow: dejavu.

I mean parametric title blocks sounds cool. But, I’m still confused lol

I’ve actually been wanting to make better title blocks for years…

@zsolt.gutleber - I think I found the issue (and stumbled onto another one in the meantime). Please update to v0.3.1 and try your file. Köszönöm szépen!

1 Like

@lander I totally agree - title blocks are not at all intuitive, and neither is the Block Text that is supposed to make them easier. I took the approach of making the Block text dependent on a combination of Document and Layout User Text fields. Document User text for fields that should be the same across layouts, and Layout User text for ones that should be Layout/Drawing specific.

Please check out the DH_DocumentAndLayoutText_Example in the example files - it includes a 3dm and gh, with an example Titleblock showing how I’ve used it.

1 Like

It is a shame FabTools is not updated to R7 and it is plenty of bugs. Together with Drafthorse will be the perfect match!

v0.4.0 is out! - a few bug fixes, but most significant update was to components that make & modify Details.

  • Detail components now take a box instead of a point as a target - this lets the Perspective view function better (default Perspective will zoom to the box).
  • Detail components additionally take a “View” input (using the view generation tools from Make2D) - this means details can now use Named views as well as custom parallel and perspective views (see the Make2D Parallel and Perspective components).
  • Layout by Bounds also has been updated so that the view will conform to the plane of the rectangle or bounding box input (previously, it always used World XY). Here’s an example where an oriented detail is generated for each face of a dodecahedron. This should make it easier to produce custom views for complex objects & assemblies.

DH_BBoxLayout_VariablePlane.gh (36.0 KB)


@jokamm Thanks for your efforts, but so far my experience is the same when I change the units. If you have some time again, please check the attached 3dm and gh files. Thank you in advance!

Drafthorse_test.3dm (39.4 KB)
Drafthorse_test.gh (15.1 KB)

Thank you (again) @zsolt.gutleber - I did, in fact, fix this in 0.3.1… and then proceeded to release 0.4.0 off of a separate development branch before merging back to main. Ugh. still learning. So it should be fixed now with 0.4.1. thanks for your patience!

1 Like

Hi @jokamm ,

While most plugins carry over just fine from Rhino 7, I cannot seem to get Drafthorse to show up in GH for Rhino 8.

Is this the case on your end as well or is there any installation tip you can share with me that I’m overlooking?

I’ve tried using package manager in R8 and R7 and I do have .gha and other files showing up in Drafthorse subfolder in my R8 plugins directory but no dice.

Any help is appreciated! Thank you!

Hi @michaelvollrath - I haven’t released a build targeted at Rhino 8. When I just tried it, I got an error related to getting the Make2dviewParameter from CurveComponents - that was the code I recently implemented to drive details by “view”. Looks like this got changed in Rhino 8 with the implementation of Grasshopper.Rhinoceros objects, so I’ll have to do a bit of re-factoring to get it working. I’ll put it at the top of my list!

Understood! This is the single feature I was looking forward to most ironically so I’m certainly excited to hear that that’s a possibility!

Thank you!

Set Doc Text component how does this work
i do get errors always

Yes, that one is a bit confusing. I wanted to add a “warning” on there to indicate when keys are already present in the DocText, and currently that happens as soon as a key is written.

I’m considering a switch to the RhinoInsideRevit model of turning the presentation of the component to black when it has executed a change in the document. Not quite sure how to implement this, but I’ve added it to the “issues” list on the project github. DocText shows as error · Issue #11 · jkamm/DraftHorse_gh · GitHub


@michaelvollrath I’ve pushed a beta version that works on Rhino 8 (v0.0.2-beta). I’m still working out some bugs. Notably, the buttons on most of the components aren’t showing up. However, I have started updating the inputs from the “Layout Index” method to the GH native type available in Rhino 8. The new “Query Pages” component in the Rhinoceros ribbon is a great way to access Layouts for this. I’ve borrowed the “View” and “Page Layout” parameters as well, and both of them have some nice built-in methods for selecting Views and Layouts which should make selection a lot simpler. Any definition using the previous components should still work - older versions of the components will come in with the “OLD” tag on them.

You can get the beta now on Yak, but only if you set your package manager to “Include pre-releases”. Looking forward to see how you use it!