Class: QgsRuleBased3DRenderer

Rule-based 3D renderer.

Similar to rule-based 2D renderer and rule-based labeling, it allows specification of rules for 3D symbols.

Warning

This is not considered stable API, and may change in future QGIS releases. It is exposed to the Python bindings as a tech preview only.

Added in version 3.6.

Class Hierarchy

Inheritance diagram of qgis._3d.QgsRuleBased3DRenderer

Base classes

QgsAbstractVectorLayer3DRenderer

Base class for 3D renderers that are based on vector layers.

QgsAbstract3DRenderer

Base class for all renderers that participate in 3D views.

Methods

copyBaseProperties

readXmlBaseProperties

rootRule

Returns pointer to the root rule

writeXmlBaseProperties

class qgis._3d.QgsRuleBased3DRenderer[source]

Bases: QgsAbstractVectorLayer3DRenderer

__init__(root: QgsRuleBased3DRenderer.Rule | None)

Construct renderer with the given root rule (takes ownership)

Parameters:

root (Optional[QgsRuleBased3DRenderer.Rule])

class Rule[source]

Bases: object

A child rule for a QgsRuleBased3DRenderer.

Added in version 3.6.

QgsRuleBased3DRenderer.Rule(symbol: Optional[QgsAbstract3DSymbol], filterExp: Optional[str] = ‘’, description: Optional[str] = ‘’, elseRule: bool = False) takes ownership of symbol, symbol may be None

Filtered = 0
Inactive = 1
class RegisterResult

Bases: int

Registered = 2
active(self) bool[source]

Returns if this rule is active

Return type:

bool

Returns:

True if the rule is active

appendChild(self, rule: QgsRuleBased3DRenderer.Rule | None)[source]

add child rule, take ownership, sets this as parent

Parameters:

rule (Optional[QgsRuleBased3DRenderer.Rule])

children(self) List[QgsRuleBased3DRenderer.Rule]

Returns all children rules of this rule

Return type:

List[QgsRuleBased3DRenderer.Rule]

Returns:

A list of rules

static create(ruleElem: QDomElement, context: QgsReadWriteContext) QgsRuleBased3DRenderer.Rule | None[source]

Create a rule from an XML definition

Parameters:
  • ruleElem (QDomElement) – The XML rule element

  • context (QgsReadWriteContext) – reading context

Return type:

Optional[QgsRuleBased3DRenderer.Rule]

Returns:

A new rule

descendants(self) List[QgsRuleBased3DRenderer.Rule][source]

Returns all children, grand-children, grand-grand-children, grand-gra… you get it

Return type:

List[QgsRuleBased3DRenderer.Rule]

Returns:

A list of descendant rules

description(self) str[source]

A human readable description for this rule

Return type:

str

Returns:

Description

filterExpression(self) str[source]

A filter that will check if this rule applies

Return type:

str

Returns:

An expression

findRuleByKey(self, key: str | None) QgsRuleBased3DRenderer.Rule | None[source]

Try to find a rule given its unique key

Parameters:

key (Optional[str])

Return type:

Optional[QgsRuleBased3DRenderer.Rule]

insertChild(self, i: int, rule: QgsRuleBased3DRenderer.Rule | None)[source]

add child rule, take ownership, sets this as parent

Parameters:
isElse(self) bool[source]

Check if this rule is an ELSE rule

Return type:

bool

Returns:

True if this rule is an else rule

parent(self) QgsRuleBased3DRenderer.Rule | None[source]

The parent rule

Return type:

Optional[QgsRuleBased3DRenderer.Rule]

Returns:

Parent rule

removeChildAt(self, i: int)[source]

delete child rule

Parameters:

i (int)

ruleKey(self) str[source]

Unique rule identifier (for identification of rule within labeling, used as provider ID)

Return type:

str

save(self, doc: QDomDocument, context: QgsReadWriteContext) QDomElement[source]

store labeling info to XML element

Parameters:
Return type:

QDomElement

setActive(self, state: bool)[source]

Sets if this rule is active

Parameters:

state (bool) – Determines if the rule should be activated or deactivated

setDescription(self, description: str | None)[source]

Set a human readable description for this rule

Parameters:

description (Optional[str]) – Description

setFilterExpression(self, filterExp: str | None)[source]

Set the expression used to check if a given feature shall be rendered with this rule

Parameters:

filterExp (Optional[str]) – An expression

setIsElse(self, iselse: bool)[source]

Sets if this rule is an ELSE rule

Parameters:

iselse (bool) – If True, this rule is an ELSE rule

setRuleKey(self, key: str | None)[source]

Override the assigned rule key (should be used just internally by rule-based renderer)

Parameters:

key (Optional[str])

setSymbol(self, symbol: QgsAbstract3DSymbol | None)[source]

Sets new symbol (or None). Deletes old symbol if any.

Parameters:

symbol (Optional[QgsAbstract3DSymbol])

symbol(self) QgsAbstract3DSymbol | None[source]

Returns the labeling settings. May return None.

Return type:

Optional[QgsAbstract3DSymbol]

copyBaseProperties()
readXmlBaseProperties()
rootRule(self) QgsRuleBased3DRenderer.Rule | None[source]

Returns pointer to the root rule

Return type:

Optional[QgsRuleBased3DRenderer.Rule]

writeXmlBaseProperties()