Data Bear

PBIX: Create a Semantic Model in Microsoft Fabric

Semantic Model in Power BI

PBIX models are central to how Power BI organizes and delivers reporting logic. In Microsoft Fabric, building a structured PBIX semantic model ensures your Lakehouse data is properly related, secured, and optimized for reporting. In this guide, you’ll learn step by step how to build and manage a PBIX semantic model inside Fabric  from relationships to DAX measures and Row-Level Security.

That’s where a semantic model comes in.

A semantic model in Fabric allows you to:

  • Combine tables from a Lakehouse or Warehouse
  • Build relationships
  • Create DAX measures
  • Implement Row-Level Security (RLS)
  • Standardize naming conventions
  • Enable consistent reporting across multiple Power BI reports

In this guide, you’ll learn exactly how to create a semantic model inside an existing Fabric workspace  from connection to security configuration.

If you’re looking to deepen your expertise beyond this guide, you can explore structured, instructor-led Power BI training 

Step 1: Create a New Semantic Model in FabricStep 1: Create a New Semantic Model in Fabric

Inside your Fabric workspace:

  1. Click New Item
  2. Select Semantic Model
  3. Choose your data source

If your data already exists in a Lakehouse:

  • Select OneLake catalog
  • Choose your Lakehouse (e.g., Adventure Works Lakehouse)
  • Click Connect
Best Practice: Naming Convention

Use a structured naming format like:

SM - Adventure Works Sales - NL

Include:

  • SM prefix (for semantic model)
  • Business domain
  • Optional initials (for shared environments)

This avoids conflicts and keeps workspaces organized.

Step 2: Select Tables for Your ModeStep 2: Select Tables for Your Mode

After connecting, choose the tables you want:

  • Date table
  • Fact table (e.g., Internet Sales)
  • Dimension tables (e.g., Customer)

Click Confirm, and Fabric will build the semantic model.

You’ll now see the familiar Model View, similar to Power BI Desktop.

Step 3: Create Relationships (And Avoid Common Mistakes)PBIX Step 3: Create Relationships (And Avoid Common Mistakes)

To create relationships:

  • Drag from a key column in one table
  • Drop onto the corresponding column in another

For example:

  • Date → Order Date
  • Customer Key → Customer Key

Fabric typically auto-detects:

  • One-to-many cardinality
  • Active relationship
  • Single-direction filtering
 Important: Always Double-Check Cardinality

Fabric does not always detect cardinality correctly.

Common issues:

  • One-to-many incorrectly set as many-to-many
  • Direction reversed
  • Wrong key columns matched

Unlike Power BI Desktop, Fabric does not preview matching values during relationship creation. You must know your schema.

Step 4: Fix Data Type Errors in RelationshipsPBIX Step 4: Fix Data Type Errors in Relationships

If you receive an error like:

Data types are not compatible for a relationship

For example:

  • One column = Decimal
  • Other column = Whole Number
Quick Fix Inside the Semantic Model
  1. Select the column
  2. Change the Data Type in Properties
  3. Retry the relationship

Important:
This change only affects the semantic model  it does NOT fix the Lakehouse data.

Best Practice

Fix data types at the source (Lakehouse, Warehouse, pipeline, or SQL).
Only use model-level fixes as temporary solutions.

Step 5: Add or Modify Tables LaterPBIX Step 5: Add or Modify Tables Later

Need to bring in more tables?

Click Edit Tables at the top.

You can:

  • Add new tables
  • Remove existing ones
If New Tables Don’t Appear

Click the Refresh button (top-right).

This forces Fabric to:

  • Check the Lakehouse
  • Refresh metadata cache
  • Pull in new schema changes

This also works if:

  • A new column was added
  • SQL modified a table
  • A Dataflow changed structure
Step 6: Understand Direct Lake & Transform Data Limitations

If your semantic model connects via Direct Lake, you may notice:

  • “Transform Data” is disabled

Why?

Because Direct Lake reads data directly from the Lakehouse files  it does not allow Power Query transformations at the model level.

However, if you:

  • Add an Excel file
  • Add a CSV file

Then Power Query becomes available for those sources.

Step 7: Clean Up Naming Conventions

Before building reports, clean up:

  • Table names
  • Column names
  • Remove prefixes like dbo or dim

This improves:

  • Usability for report builders
  • Business clarity
  • Adoption across teams

Renaming inside the semantic model does NOT change source data  it only affects presentation.

Step 8: Create a Measures Repository (Highly Recommended)

One of the most important best practices is creating a Measures Repository.

Instead of storing measures in fact tables:

Create a Blank Table
  1. Click Get Data
  2. Search for Blank Query
  3. Create a small placeholder table
  4. Name it:
_Measures

Add a dummy column temporarily.

After saving:

  • Create your first measure (e.g., Total Sales)
  • Delete the dummy column

Now the table converts into a measure-only table (calculator icon).

Example Measure
Total Sales = 
SUM('Internet Sales'[Sales Amount])
Benefits of a Measures Repository
  • Keeps model clean
  • Centralizes calculations
  • Easier maintenance
  • Allows display folders
  • Professional standard for enterprise models

You can also create Display Folders such as:

  • Sales Metrics
  • Customer KPIs
  • Time Intelligence
Step 9: Configure Row-Level Security (RLS)

To create security rules:

  1. Click Manage Roles
  2. Create a new role
  3. Add a DAX filter

Example:

[Sales Territory Key] = 3

This restricts users to Sales Territory 3 (e.g., Florida, Georgia, Alabama).

After saving:

  • Go to the semantic model in your workspace
  • Open Security
  • Assign users or security groups
Why This Matters

If 100 reports use this semantic model:

  • Security is enforced everywhere
  • No need to reconfigure RLS per report

This is enterprise-grade data governance.

Step 10: Managing Your Semantic Model

From the workspace, you can:

  • Open in editing mode
  • Assign security
  • Schedule refresh
  • Manual refresh
  • Analyze in Excel
  • View lineage
  • Delete or duplicate

To make changes:

Switch from ViewingEditing mode (top right).

Why Semantic Models Are Critical in Fabric

A well-designed semantic model:

  • Standardizes metrics
  • Prevents inconsistent calculations
  • Enforces governance
  • Improves performance
  • Enables scalable report development

In enterprise Fabric environments, this is often the final step before reports are built.

Want to Master Power BI and Fabric?

If you’re serious about building production-ready semantic models, DAX measures, and enterprise-grade Power BI solutions, structured training can dramatically accelerate your progress.

Explore comprehensive Power BI training programs

Frequently Asked Questions
Can you create multiple semantic models from one Lakehouse?

Yes. This is very common and recommended for different business domains.

Does changing data types in the semantic model affect the Lakehouse?

No. Changes only apply to the semantic model.

Why doesn’t Transform Data work in Direct Lake?

Because Direct Lake bypasses Power Query and reads directly from Delta files.

Should measures be stored in fact tables?

No. Use a dedicated Measures Repository table.