Envision 1.9.0

December 20, 2023 - SHA: e2e38f7d

web CEETRON Envision for Web desktop CEETRON Envision for Desktop

Fixed Bugs

CAE-1253 CeeVTFx: Assert when calling SetBlock.blockType() desktop

Fixed missing internal enum causing SetBlock.blockType() to assert.

CAE-1252 CeeVTFx: C# casting not implemented desktop

Casting in the C# wrapper needs extra functionality in the swig interface layer. This is missing from all classes inheriting from Block in the CeeVTFx component. Add this to be able to downcast.

var block = db.blockByIndex(Block.BlockType.SET, 0);
var setBlock = SetBlock.castFromBaseClass(setBlock);

CAE-1269 Setting logarithmic mapping and range using properties, shows improper range web

Using ScalarSettings.setFromProperties{logarithmicMapping: , rangeMinimum: , rangeMaximum: } with range and log mapping together would cause the resulting legend to not show the expected range. Fixed this to ensure that range is not adjusted when logarithmic mapping is set to OFF.

CAE-1251 CeeVTFx: Transparent logo not supported desktop

Custom logo transparency has now been added to CeeVTFx. Custom logo transparency was fixed in CAE-6 released with Envision 1.8, but was not implemented for the VTFx component.

New Features

CAE-42 Color vectors by any scalar (not just the one shown as fringes) desktop web

Added the option for a user to color any mapped vector results by any scalar result data set.

This setting is owned by the VectorSettings class on Desktop and Web. Enable this by setting vector color mode to VectorSettings::ColorMode::COLOR_BY_MAP_SCALAR and specifying the scalar result to map onto the vector arrows.



int vecResId = model->modelSpec().vectorResultIds()[0];
cee::ug::VectorSettings* vectorSettings = model->vectorSettings(vecResId);



const vecResId = model.modelSpec.vectorResultIdArray[0];
const vectorSettings = model.getVectorSettingsById(vecResId);

vectorSettings.colorMode = cee.ug.VectorColorMode.COLOR_BY_MAP_SCALAR;
vectorSettings.mapScalarResultId = model.modelDirectory.scalarResultArray[1].id;

CAE-1113 CeeVTFx: Added support for cross sections desktop web


Added support for cross section visualization of beam elements in CeeVTFx. The VTFx component has a new class CrossSectionBlock to store cross section specifications. Add these by calling CrossSectionBlock::addCrossSection() with cross section type and necessary parameters. These cross sections can be mapped to beam elements by adding the elements using ElementBlock::addElementsWithCrossSections() specifying both the element and the cross section mapping into the connected CrossSectionBlock block.

Supported cross section types are:





  • BEAM_L





The distribution contains several examples on creating cross sections. These can be found in the Examples folder and described in the documentation for the VTFx component.

Models exported with cross section data will also be shown in Envision Web.

CAE-916 Web: Controlling Label visibility with an occluder object web

Controlling label visibility with an occluder object is now implemented in CEETRON Envision Web. Note that this feature requires WebGL 2.0 support.

Use cee.mrk.PartLabels.setOccluderTriMesh() to set the occluder tri-mesh to use for testing the visibility of the label at the specified index. If the mesh is visible, the label will be visible. If the mesh is occluded, the label will be hidden.

Note the following shortcomings of the current implementation:

  • Picking on occluded labels will not work reliably since there is no knowledge of the label’s visibility during picking.

  • Screen grabbing may not be reliable since there might be a need for multiple redraws until occlusion query results settle.

CAE-1244 Added support for Python 3.11 desktop

CEETRON Envision Desktop has updated its Python support to include Python 3.11.