Chart Features Overview
The charting system provides:- Bar charts showing element counts by type (walls, slabs, beams)
- Doughnut charts displaying element distribution by building level
- Interactive filtering to isolate elements by clicking chart segments
- Visual isolation that highlights selected elements in the 3D viewport
/src/bim-components/ChartData/index.ts:28
Accessing the Charts Panel
The charts interface is located in the Project Information panel:
Reference: Chart UI at
/src/bim-components/ChartData/src/user-interface.ts:179
Generating Charts
Elements by Type (Bar Chart)
Visualize the distribution of structural elements in your model.Chart Generates Automatically
A bar chart appears showing counts for:
- Walls (IFCWALL / IFCWALLSTANDARDCASE) - Red bars
- Slabs (IFCSLAB) - Blue bars
- Beams (IFCBEAM) - Green bars
/src/bim-components/ChartData/index.ts:97
Bar Chart Features
- Color-coded for easy identification
- Tooltip display shows exact counts on hover
- 8px border radius for modern appearance
- 2px border width for clear separation
/src/bim-components/ChartData/index.ts:122
Elements by Level (Doughnut Chart)
Analyze how elements are distributed across building storeys.Chart Shows Storey Distribution
A doughnut chart appears with each segment representing a building level (Ground Floor, Level 1, etc.).
/src/bim-components/ChartData/index.ts:51
Doughnut Chart Features
- Compact layout (300x300px maximum)
- 20px padding around the chart
- Legend disabled for cleaner presentation
- Unique colors for each building storey
/src/bim-components/ChartData/src/user-interface.ts:126
Interactive Filtering
Click chart elements to isolate them in the 3D viewport:Filtering by Element Type
Elements Isolate in Viewport
Only the selected element type remains visible in the 3D view. All other elements are hidden.
/src/bim-components/ChartData/src/user-interface.ts:62
Filtering by Building Level
Click a Doughnut Segment
In the Elements By Level chart, click any segment representing a building storey.
Level Elements Isolate
Only elements from the selected building level remain visible in the 3D viewport.
/src/bim-components/ChartData/src/user-interface.ts:155
How Filtering Works
The isolation system uses the Hider component:- Fragment ID mapping - Selected elements are mapped to their fragment IDs
- Hider.isolate() - Only the mapped fragments remain visible
- 3D update - The viewport updates to show only isolated elements
- Color feedback - Chart segments change color to indicate selection
/src/bim-components/ChartData/src/user-interface.ts:73
Restarting Charts
Refresh chart data after model changes:
Reference: Restart function at
/src/bim-components/ChartData/src/user-interface.ts:44
Understanding Chart Data
Element Type Detection
The system identifies elements using IFC entity types:- Walls: Searches for
IFCWALL, falls back toIFCWALLSTANDARDCASEif none found - Slabs: Identifies all
IFCSLABentities - Beams: Identifies all
IFCBEAMentities
/src/bim-components/ChartData/index.ts:100
Building Level Detection
For level-based charts:Get Contained Elements
For each storey, it uses the IFC Relations Indexer to find elements with “ContainedInStructure” relationships.
/src/bim-components/ChartData/index.ts:66
Color Generation
Colors are intelligently managed:- Bar chart colors: Pre-defined for consistency
- Walls:
rgba(255, 0, 0, 0.5)(red) - Slabs:
rgba(0, 150, 255, 0.5)(blue) - Beams:
rgba(0, 255, 0, 0.5)(green)
- Walls:
- Doughnut chart colors: Randomly generated RGB values with uniqueness checking
- Selection color:
rgba(255, 255, 0, 0.7)(yellow) for clicked elements
/src/bim-components/ChartData/index.ts:38
Chart Library Integration
AI-BIM App uses Chart.js for visualization:Registered Components
BarController- Manages bar chart renderingBarElement- Individual bar visualizationDoughnutController- Manages doughnut chart renderingArcElement- Doughnut segment visualizationCategoryScale- X-axis scale for bar chartsLinearScale- Y-axis scale for bar chartsTooltip- Hover information display
/src/bim-components/ChartData/src/user-interface.ts:16
Chart Configuration
Default options applied to all charts:/src/bim-components/ChartData/src/user-interface.ts:24
Advanced Usage
Combining with Selection Tools
Select Individual Elements
Click individual elements in the isolated view to inspect their properties.
Analyzing Model Composition
Use charts to understand your model:- Element balance: Compare wall, slab, and beam quantities
- Level complexity: Identify floors with the most elements
- Model completeness: Check if all expected element types are present
- Storey distribution: Understand vertical organization
Quality Control Workflows
Exporting Insights
While direct export isn’t built-in, you can document findings:- Take screenshots of charts for reports
- Use the AI query feature to generate text summaries of data
- Manually record element counts from chart tooltips
- Combine chart visuals with 3D viewport screenshots
Troubleshooting
Chart Doesn’t Appear
- Ensure an IFC model is loaded
- Click the RESTART CHART button
- Check that your model contains walls, slabs, or beams
- Look for browser console errors
Empty Chart Displayed
- Your IFC file may not contain the expected element types
- Verify element classifications in your BIM authoring software
- Try loading a different IFC file to test
Click Doesn’t Isolate Elements
- Ensure you’re clicking directly on bars or segments (not empty space)
- Check if elements are already isolated from a previous selection
- Click Show All in the Selection toolbar to reset visibility
Incorrect Element Counts
- Some IFC files use non-standard entity types
- Check if walls are exported as IFCWALL vs IFCWALLSTANDARDCASE
- Verify IFC classification in your source BIM model
Doughnut Chart Missing Levels
- Ensure building storeys are defined in the IFC file
- Check spatial structure in your BIM authoring tool
- Elements not assigned to storeys won’t appear in level charts
Performance Considerations
Large Models
- Chart generation may take several seconds for models with thousands of elements
- The system processes all fragments to calculate counts
- First chart generation is slowest; subsequent updates are faster
Memory Usage
- Each chart stores element expressID arrays
- Very large models may consume significant memory
- Close charts when not in use to free resources
Tips for Effective Data Analysis
Next Steps
Enhance your analysis workflow:- Use measurement tools on isolated elements
- Combine with AI queries for detailed property analysis
- Master 3D navigation to inspect isolated elements effectively