# Visualization Module **3D geometry display system using DirectContext3D transient rendering.** Display Revit geometry (curves, faces, solids, meshes, points, bounding boxes) directly in the active 3D view without creating model elements or affecting the Revit database. ![Trace Geometry](images/RevitDevTool_TraceGeometry.gif) --- ## 📚 Documentation ### User Guides - [Geometry Types](Visualization-GeometryTypes.md) - Supported geometry types ### Integration - [Trace Geometry](Visualization-TraceGeometry.md) - Integration with logging system --- ## ⚡ Quick Start ### Python: Visualize Geometry See [visualization_curve_script.py](https://github.com/trgiangv/RevitDevTool/blob/master/source/RevitDevTool.PythonDemo/commands/visualization_curve_script.py): ```python from Autodesk.Revit.DB import Line, XYZ # Create geometry start = XYZ(0, 0, 0) end = XYZ(10, 10, 0) line = Line.CreateBound(start, end) # Print geometry object - displays in 3D view print(line) # Line appears immediately in active 3D view ``` **More examples:** - [visualization_xyz_script.py](https://github.com/trgiangv/RevitDevTool/blob/master/source/RevitDevTool.PythonDemo/commands/visualization_xyz_script.py) - Point visualization - [visualization_curve_script.py](https://github.com/trgiangv/RevitDevTool/blob/master/source/RevitDevTool.PythonDemo/commands/visualization_curve_script.py) - Curve and edge visualization - [visualization_solid_script.py](https://github.com/trgiangv/RevitDevTool/blob/master/source/RevitDevTool.PythonDemo/commands/visualization_solid_script.py) - Solid and face visualization ### C#: Visualize with TraceGeometry See [RevitDevTool.DotnetDemo/CurveVisualization.cs](https://github.com/trgiangv/RevitDevTool/blob/master/source/RevitDevTool.DotnetDemo/CurveVisualization.cs): ```csharp using Autodesk.Revit.DB; using RevitDevTool.Visualization; // Create geometry XYZ start = XYZ.Zero; XYZ end = new XYZ(10, 10, 0); Line line = Line.CreateBound(start, end); // Display TraceGeometry.Show(line); ``` **More examples:** - [XYZVisualization.cs](https://github.com/trgiangv/RevitDevTool/blob/master/source/RevitDevTool.DotnetDemo/XYZVisualization.cs) - Point visualization - [CurveVisualization.cs](https://github.com/trgiangv/RevitDevTool/blob/master/source/RevitDevTool.DotnetDemo/CurveVisualization.cs) - Curve visualization - [SolidVisualization.cs](https://github.com/trgiangv/RevitDevTool/blob/master/source/RevitDevTool.DotnetDemo/SolidVisualization.cs) - Solid visualization - [FaceVisualization.cs](https://github.com/trgiangv/RevitDevTool/blob/master/source/RevitDevTool.DotnetDemo/FaceVisualization.cs) - Face visualization - [MeshVisualization.cs](https://github.com/trgiangv/RevitDevTool/blob/master/source/RevitDevTool.DotnetDemo/MeshVisualization.cs) - Mesh visualization --- ## 🎨 Supported Geometry Types ### 1. Curves - **Line** - Straight line segments - **Arc** - Circular arcs - **Ellipse** - Elliptical arcs - **NurbSpline** - Spline curves - **HermiteSpline** - Hermite splines - **CurveLoop** - Closed curve loops - **PolyLine** - Multi-segment polylines ### 2. Faces - **PlanarFace** - Flat faces - **CylindricalFace** - Cylindrical surfaces - **ConicalFace** - Conical surfaces - **RevolvedFace** - Revolved surfaces - **RuledFace** - Ruled surfaces ### 3. Solids - **Solid** - 3D solid geometry - Displays edges, faces, and vertices ### 4. Meshes - **Mesh** - Triangulated mesh geometry - Supports vertex colors - Custom shading ### 5. Points & Boxes - **XYZ** - Individual points - **BoundingBoxXYZ** - Bounding boxes See: [Complete Geometry Types Reference](Visualization-GeometryTypes.md) --- ## 🔧 Features ### 1. Transient Rendering - No model elements created - No Revit database modifications - Appears only in active session - Automatic cleanup ### 2. DirectContext3D - Hardware-accelerated rendering - High performance - Real-time updates - Smooth interaction ### 3. Color & Style - Custom colors per geometry - Transparency support - Line width control - Material properties ### 4. Integration - Works with Python scripts - C# extension methods - Automatic via `print(geometry)` in Python - Manual via `TraceGeometry.Show()` in C# ### 5. Multiple Geometries - Display multiple objects simultaneously - Clear all with single command - Selective removal - Grouped display --- ## 🎯 Common Use Cases - **Analysis Results** - Visualize wall centerlines, room boundaries, analytical geometry - **Debug Geometry** - Test line/curve creation, verify geometry operations - **Highlight Elements** - Show specific elements matching criteria - **Bounding Boxes** - Quick spatial previews of elements - **Intersection Testing** - Display intersection points, overlap geometry - **Path Visualization** - Show circulation paths, piping routes, duct runs **See complete examples:** - Python: [visualization_curve_script.py](https://github.com/trgiangv/RevitDevTool/blob/master/source/RevitDevTool.PythonDemo/commands/visualization_curve_script.py) - C#: [CurveVisualization.cs](https://github.com/trgiangv/RevitDevTool/blob/master/source/RevitDevTool.DotnetDemo/CurveVisualization.cs) --- ## ⚡ Performance Tips 1. **Batch Display** - Print multiple geometries in loops 2. **Clear Regularly** - Use Clear Geometry button to avoid clutter 3. **Limit Complexity** - Avoid displaying thousands of objects at once 4. **Use Simple Types** - Lines instead of complex curves, BoundingBoxXYZ for previews 5. **Representative Samples** - Show subsets rather than entire collections --- ## 🖥️ UI Features ### Geometry Count Badge The **Clear Geometry** button displays a live count badge showing the number of geometry objects currently visualized: - Badge updates in real-time as geometries are added - Shown as a colored indicator on the button - Click "Clear Geometry" to remove all visualized objects - Located in the main toolbar of TraceLogPage --- ## 🛠️ Technical Details For developers extending the visualization system: ![Visualization Settings](images/RevitDevTool_VisalizationSettings.png) --- ## 📖 Related Modules - [Logging Module](Logging-Overview.md) - Trace capture and output - [CodeExecute Module](CodeExecute-Overview.md) - Code execution framework - [Home](Home.md) - Main documentation hub --- **Rendering:** DirectContext3D (hardware-accelerated) **Performance:** Real-time (60 FPS) **Revit Support:** 2022-2026