I am translating a 3D visualization lab from ArcMap to QGIS 3.22. The lab is very simple; draping imagery over a DEM and showing 3D points that are earthquake epicenters underneath the terrain.

The problem I am facing: In ArcMap, we were able to vary the symbology of the 3D points based on their magnitude values. The instructions are written up here:

"To do this, right-click on the eq_3D layer name and choose Properties → Symbology. Next to the symbol, click the Advanced button and from the drop-down menu, choose Size, then choose and click the calculator button to open the Expression Builder. We want to scale the symbols proportionally to magnitude, but the units for magnitude are numerically small compared to the size (in meters) of our desired symbols, so use an expression like [Magnitude] * 500".

Simple enough!

In QGIS however, it does not seem possible to change the proportions of 3D point symbols based on some value. I have been doing lots of Googling, but haven't seen anyone asking this question. In the 3D Symbol tab in Properties, I attempted to type in expressions into the Radius box, or to do some sort of rule-based 3D symbol but to no avail. To be fair, my expression-writing is not particularly strong, so I could be doing it wrong.

Do you know of any ways to vary the proportions of 3D point symbols in QGIS 3.22 (LTR)?

2 Answers 2


For an expression based styling of 3D vector features in QGIS, you can use the plugin Qgis2threejs. No need to make prior 3D settings on your layer, everything is done in the plugin - install the plugin and open the interface from Menu Web.

Greatest thing: when satisfied, with a few clicks you can export the whole setting as interactive scene for the Web so everyone can zoom, rotate, pan, set transparency etc. - cool! See interactive example here.

Setup is simple and intuitive: in the plugin's interface, right click the layer you want to style and click Properties. Then you can select a type (like Sphere, Cylinder, Cone etc.) and make the available settings, where you can use attributes and expressions for Altitude, Size, Color etc. as can be seen on the screenshot:

enter image description here

  • This did work quite well, thank you! The viewing options seem to be a little more limited in the plugin (no setting light at azimuthal angle and terrain looks a little clunkier), but worked great for our purposes!
    – aspang
    Commented Dec 6, 2022 at 13:56

This indeed does not seem to be possible as of QGIS 3.28 out of the box. There is, however, a workaround: create a Rule-based 3D style and define a separate rule for each case - like attribute-value=12 -> size=12 etc.:

enter image description here

Your Answer

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

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