Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Join us for an expert-led overview of the tools and concepts you'll need to become a Certified Power BI Data Analyst and pass exam PL-300. Register now.

Reply
moises_martinez
Frequent Visitor

How add svg in my custom visual???

Hello!

 

 

I want to add a svg in my custom visual. In all example i saw:

 public init(options: VisualInitOptions): void {

         var svg = this.svg = d3.select(options.element.get(0)).append('svg').classed('thermometer', true);

          ....

}

 

but... I don't have init method in my class. I have

constructor(options: VisualConstructorOptions) {... }

Yhank you for any help.

1 ACCEPTED SOLUTION
moises_martinez
Frequent Visitor
4 REPLIES 4
Anonymous
Not applicable

I found this tutorial useful for adding an SVG to a custom visual: https://blog.jongallant.com/2016/12/powerbi-custom-visual-svg-png/

moises_martinez
Frequent Visitor

MawashiKid
Resolver II
Resolver II

Indeed the thermometer.ts you're refering to seems pretty much siimilar to an old deprecated version found on

 
  https://gist.github.com/spatney/4eb52930075a5e5be9af

and was basically used in an early DevTool Deprecated demo video.

 

I did manage to easily refactor the thermometer.ts code to Power BI Visuals CLI v1.1.0 a while ago.

 

Basically code was completely refactored, first by using constructor method instead of init.

Also for SoC convinience... everything that deals with dataRole, dataViewMappings, object...
definition was no longer defined in main thermometer.ts file using
    public static capabilities: VisualCapabilities
but in separate capabilities.json

D3.Selection definitions also had to be refactored with d3.selection<SVGElement> and so on... 

 

I'll see if I could put the demo back on Github...

TedPattison
Microsoft Employee
Microsoft Employee

The programming model for Power BI custom visuals changes over the summer in 2016. In the older model, there is an init method for each custom visuals. When the model changed, developers now write init code for one-time load operations in class constructor and there is no longer an init method for custom visuals in the new model.

 

The example you are looking at is based on the old model and you should be able to move that code from the old init method into the constructor.

Helpful resources

Announcements
Join our Fabric User Panel

Join our Fabric User Panel

This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.

June 2025 Power BI Update Carousel

Power BI Monthly Update - June 2025

Check out the June 2025 Power BI update to learn about new features.

June 2025 community update carousel

Fabric Community Update - June 2025

Find out what's new and trending in the Fabric community.

Top Solution Authors