I'm new to QGIS and working with GIS in general (student of architecture), so please bear with me.

I have obtained shapefiles with topographic curves of an ocean floor. My intention is to export these as CAD files and render as 3D models of the ocean floor in Revit. I have done this procedure earlier with terrain shapefiles. My problem now is that these files mapping depth does not contain z values, so when exporting them into CAD they are completely flat rather than 3D models.

The depth information in meter exists as attributes in the file (see attached image). What I want is to transform this depth value into real z coordinates for each line so that the curves have different heights when importing as CAD file in Revit.

Thankful for any pointers in the right direction.

depth to z-value

1 Answer 1


It's super-easy in QGIS 3.0:

  • Run the "Set Z Value" Processing algorithm
  • Click the button on the right of "Z Value", and select Field -> "DYBDE".
  • Run the algorithm. The z values for the geometry's vertices will be set to the value from the DYBDE field.

In case you have the values of depths and you want to get elevation values with negative number for countour line below sea level. The best way is to need to add a new column in the attribute table of the original file and assign z <- -BYDBE. enter image description here

enter image description here

enter image description here

  • 1
    Thanks ndawson, that's a better answer than i could have hoped! That procedure works fine, but also ofcourse the z values need to be the negative of the depth values: a DYBDE (Norwegian for "depth") of 10 should become a Z value of -10. Is there an easy way of doing this either when importing DYBDE values to Z column, or just turning all Z values negative afterwards?
    – erik
    Mar 9, 2018 at 7:54
  • 2
    Nevermind, I found the "Edit..." option to change the expression to -"DYBDE". Thanks again for the help.
    – erik
    Mar 9, 2018 at 8:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.