LandsDesign Terrain Contour issue Below 0

Hey Guys,

Lands Design appears to be failing to generate contours for any part of a terrain object that’s below the origin point. Any way we can solve this without having to move the entire model up?

Thanks for your help!

Hi Clayton,
I tested it and yes, there is a wrong behavior there, it’s not working as usual. We’ll fix it and I let you know when a new version with the fix is available.

Thanks for reporting it.

Oh great! Thanks for the follow up.

Any idea when you’ll push this fix through? I’ll need to present some of these drawings within the next week and may need to switch to another setup in order to get them ready.

Thanks again,

It’s already fixed, we’ll probably publish a 5.7.4 version with the fix within the nexts days, but I can’t precise when. If you want, we can provide you with a link to an internal version (almost identical than the currently published but with the fix. In that case, write me to
If you prefer to wait until the official release, I’ll keep you informed as sson as it is available.

No need for an internal version, within the next week is perfect. Thanks so much for your quick response!


We have just released Lands Design 5.7.4 that includes the fix for this and some other issues.

You still need to fix the export so only top surfaces can be exported:


The moment I type in the file name (a dwg here) the base pops up and wants to be part of the export.

This issue has been reported for IFC as well.

Hi @Holo,

We are aware of this issue; we will let you know when it is fixed.

I trust you understand how important it is to export files to be able to work with others, so please put this on top of the list.

All terrains in Lands have a set of display meshes (an array), the first is the top, the second is the extrusion.
I was able to make a script that extracts only the top as this is always the first of those two meshes, so I am sure you can quickly fix your exporter to only use that if the terrain doesn’t have the base activated.

Hope you fix it soon.

You will find N meshes in the block definition pointed by the terrain object. The first is the “top”, the last is the base box (the “extrusion”), and in between you’ll find a mesh for each division made to the terrain.

You’ll also find the countour curves there, and index countour labels if enabled, and zone hatches if set on, and… All is created at evaluation time, so that 2d/3d convert can be done in no time. When Rhino draws the terrain, Lands overrides the block instance behavior so that the block contents are drawn or not according to the 2d/3d state, the base on/off state, etc.

The Export command treats the terrain as a regular block instance, and there isn’t an easy way to override it from Lands.

Ifc Export is a plugin of us, so here we can fix the problem.

Sure there is more going on, all I did was extracting the rendermeshes from the block through Rhino Common, and there there first one was always the top :slight_smile: (But I had to first export those to a new file since the IFC exporter picked up all the terrain meshes and exported those as well, even if not selected, but that is done via a temp Rhino file so it is done automatically)

So what you are saying is that Rhino’s native exporter can’t avoid exporting the base geometry? Unless you rewrite your program to not genereate those in advanced and only do so if they are tagged as “on”?

Yes, to improve the native Export of Lands objects (not just terrains) we need to rewrite our program to not generate those in advance, or to generate and store it somewhere else.

By the way, there is a .NET SDK in Lands that let you modify terrain objects and access to output meshes. It is WIP, and for now, there are only terrain related functions.
To start playing with it, you can take a look to the “Lands.Script.dll” located into the Rhino System folder:
C:\Program Files\Rhino 7\System

A simple code sample could be:

using Lands;

Guid meshId = Lands.Script.GetTerrainMesh(terrainId);
// use meshId as you want

int numDivisions = Lands.Script.GetTerrainDivisionCount(terrainId);
for (int i = 0; i < numDivisions; i++)
    Guid mid = Lands.Script.GetTerrainDivisionMeshAt(terrainId,i);
    RhinoObject rhinoObject = doc.Objects.FindId(mid);
    if (rhinoObject != null)
        rhinoObject.Attributes.ObjectColor = Color.FromArgb(255, 0, 0);
        rhinoObject.Attributes.ColorSource = ObjectColorSource.ColorFromObject;

We’ll be glad to have feedback from anyone using it.

1 Like

Hi @Clayton_Muhleman,

We have already fix this issue. You can now download the las version (Lands Design 5.7.4) from here: