From 811b8150825bc69d29676b557b1acb4e766f1178 Mon Sep 17 00:00:00 2001 From: tian <11429339@qq.com> Date: Fri, 21 Nov 2025 10:45:38 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=E4=B8=8D=E5=BF=85=E8=A6=81?= =?UTF-8?q?=E7=9A=84=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- VERSION.md | 2 +- WARP.md | 196 ----------------------------------------------------- 2 files changed, 1 insertion(+), 197 deletions(-) delete mode 100644 WARP.md diff --git a/VERSION.md b/VERSION.md index ede6001..709c7cf 100644 --- a/VERSION.md +++ b/VERSION.md @@ -1,3 +1,3 @@ # 版本号 -0.13.0 \ No newline at end of file +0.13.0 diff --git a/WARP.md b/WARP.md deleted file mode 100644 index 2a0b9a6..0000000 --- a/WARP.md +++ /dev/null @@ -1,196 +0,0 @@ -# WARP.md - -This file provides guidance to WARP (warp.dev) when working with code in this repository. - -## Project Overview - -NavisworksTransport is a comprehensive Navisworks 2026 plugin for logistics path planning and transportation conflict detection in 3D building models. The plugin provides advanced route optimization, collision detection, and animated object movement along user-defined or automatically calculated paths. **This is a Navisworks 2026-exclusive project** - no legacy 2017 compatibility is maintained. - -## Common Development Commands - -### Building - -- **Primary build command**: `./compile.bat` - Must use `./` prefix in PowerShell/CMD on Windows -- **Alternative**: `dotnet build NavisworksTransportPlugin.csproj --configuration Debug --verbosity normal` -- **MSBuild paths auto-detected**: VS2022 Community → Professional → VS2019 fallback - -### Deployment - -- **Deploy to Navisworks**: `deploy-plugin.bat` (requires Administrator privileges) -- **Auto-deployment**: Build output automatically copies to Navisworks 2026 plugin directory -- **Plugin location**: `C:\Program Files\Autodesk\Navisworks Manage 2026\Plugins\NavisworksTransportPlugin\` - -### Testing & Debugging - -- **Log viewer**: Use LogManager centralized logging - logs stored in `%CommonApplicationData%\Autodesk\Navisworks Manage 2026\NavisworksTransport\logs\debug.log` -- **Hot reload**: Restart Navisworks required after each compilation -- **Testing environment**: Navisworks Manage 2026 exclusively - -## Architecture Overview - -### Dual Plugin Architecture Pattern - -This system implements multiple Navisworks plugin types in a single assembly: - -- **MainPlugin.cs**: Primary AddInPlugin with ribbon UI integration and DockPanePlugin capabilities -- **PathClickToolPlugin.cs**: ToolPlugin for 3D mouse interaction and interactive point placement -- **PathPointRenderPlugin.cs**: RenderPlugin providing 3D visualization overlays -- **TestPlugin.cs**: Development testing plugin (separate from main functionality) - -### Core Management Layer - -- **PathPlanningManager.cs**: Central coordinator with A* pathfinding algorithm integration (RoyT.AStar library) -- **LogisticsAnimationManager.cs**: Advanced animation system leveraging Navisworks 2026 native components -- **TimeLinerIntegrationManager.cs**: Bridge between custom animations and Navisworks TimeLiner -- **CategoryAttributeManager.cs**: COM API wrapper for persistent logistics attribute management -- **VisibilityManager.cs**: Model layer control and filtering system -- **ModelSplitterManager.cs**: Model export and layer separation capabilities - -### Data & Coordinate Systems - -- **PathPlanningModels.cs**: Core data structures with event-driven state management -- **PathDataManager.cs**: JSON serialization system with migration support -- **CoordinateConverter.cs**: Complex coordinate transformation chains for 2D map overlay to 3D world mapping -- **GeometryExtractor.cs**: Spatial analysis and precise bounding box calculations -- **FloorDetector.cs**: Multi-story building automatic floor/level detection - -### UI Architecture: Hybrid WPF + WinForms - -- **WPF Components** (`src\UI\WPF\`): Modern MVVM-based controls - - LogisticsControlPanel: Main docked interface panel - - ViewModels: INotifyPropertyChanged pattern implementation - - Separated Views: ModelSettingsView, PathEditingView, AnimationControlView, SystemManagementView -- **WinForms Dialogs**: Legacy property editing interfaces for backward compatibility -- **Integration**: ElementHost pattern for embedding WPF in Navisworks environment - -### Pathfinding & Animation Integration - -- **A* Implementation**: RoyT.AStar library for optimal path calculation -- **Animation Pipeline**: Transform-based movement with real-time collision detection -- **TimeLiner Bridge**: Synchronization between custom path animations and Navisworks timeline -- **Real-time Collision**: ClashDetectiveIntegration for dynamic conflict detection during animation playback - -## Technical Implementation Details - -### Navisworks API Integration Strategy - -- **Dual API Approach**: Native API (`Autodesk.Navisworks.Api`) for core functionality + COM API (`Autodesk.Navisworks.ComApi`) for attribute persistence and TimeLiner operations -- **Multi-Plugin Registration**: Three distinct plugin types registered in single assembly -- **Global Exception Handling**: `GlobalExceptionHandler` class provides application-wide error management -- **Navisworks 2026 Exclusive**: Utilizes 2026-specific API features without backward compatibility constraints - -### State Management Architecture - -- **Session State**: PathEditState enum (None, AddingPoints, EditingPath) with comprehensive event callbacks -- **Data Persistence**: JSON-based serialization with LogisticsAttributeChangedEventArgs for change tracking -- **Coordinate Mapping**: Multi-layer coordinate system supporting 2D overlay visualization on 3D models - -### Logistics Classification System - -Eight predefined categories with automatic inheritance from parent to child nodes: - -- 门 (Doors), 电梯 (Elevators), 楼梯 (Stairs), 通道 (Channels) -- 障碍物 (Obstacles), 装卸区 (Loading Zones), 停车区 (Parking), 检查点 (Checkpoints) - -## Development Guidelines - -### Language Standards - -- **Primary Language**: 中文 (Chinese) for all user interaction, code comments, and technical documentation -- **Communication**: All development discussions and code documentation must be in Chinese - -### Package Management (Legacy .NET Framework) - -- **Project Format**: Old-style csproj using `` with HintPath (NOT PackageReference) -- **NuGet Management**: Manual packages.config management (do NOT use `dotnet add package`) -- **Package Installation**: Download .nupkg files and extract to packages/ directory -- **Assembly Path Format**: `packages\{PackageId}.{Version}\lib\{TargetFramework}\{Assembly}.dll` - -### Plugin Registration Patterns - -```csharp -// Multi-plugin registration in single assembly -[Plugin("NavisworksTransport.MainPlugin", "YourDeveloperID")] -[AddInPlugin(AddInLocation.AddIn)] -public class MainPlugin : AddInPlugin { } - -[Plugin("NavisworksTransport.PathClickTool", "YourDeveloperID")] -[ToolPluginAttribute("NavisworksTransport.PathClickTool", "YourDeveloperID")] -public class PathClickToolPlugin : ToolPlugin { } -``` - -### Critical API Usage Patterns - -- **Navisworks API Documentation**: Always check `doc\navisworks_api\` documentation before implementing Navisworks functionality -- **COM API for Persistence**: Use COM API for all attribute operations requiring session persistence -- **GlobalExceptionHandler**: Must be initialized in MainPlugin constructor for application-wide error handling -- **Thread Safety**: All UI operations must be marshaled to main thread when called from background processes - -### Navisworks 2026 Development Focus - -- **Exclusive 2026 Targeting**: No backward compatibility required - leverage all 2026-specific features -- **Legacy References**: `src\Legacy\` contains reference code from 2017 version but is not actively maintained -- **Modern Animation System**: Use Navisworks 2026 native animation components instead of manual Transform manipulation -- **Enhanced APIs**: Full utilization of improved 2026 APIs for collision detection, animation, and model management - -## API Documentation Search Strategy - -### CHM Documentation Best Practices - -**Problem**: CHM extraction creates thousands of HTML files, making standard search tools ineffective - -**Solution Strategies**: - -1. **Use structural entry points**: - - ```bash - # Priority access to class member lists - AllMembers_T_Autodesk_Navisworks_Api_ClassName.htm - ``` - -2. **Precise filename search**: - - ```bash - find . -name "*ClassName*" -o -name "*MethodName*" - ``` - -3. **Hierarchical search approach**: - - First locate class-level documentation - - Navigate from class member lists to method links - - Utilize inter-document hyperlink navigation - -4. **Common API documentation paths**: - - Document class: `AllMembers_T_Autodesk_Navisworks_Api_Document.htm` - - TimeLiner: `AllMembers_T_Autodesk_Navisworks_Api_Timeliner_*.htm` - - Plugin base classes: `AllMembers_T_Autodesk_Navisworks_Api_Plugins_*.htm` - -## File Structure Context - -### Source Organization - -``` -src/ -├── Core/ # Main plugin components -│ ├── Animation/ # Animation system -│ ├── Collision/ # Collision detection -│ ├── Properties/ # Attribute management -│ └── [Plugin classes] # Main, Tool, Render plugins -├── PathPlanning/ # A* pathfinding algorithms -├── UI/ -│ ├── Forms/ # WinForms dialogs -│ └── WPF/ # Modern WPF interface -└── Utils/ # Utility classes -``` - -### Documentation Structure - -- `doc/guide/`: Development guides and troubleshooting -- `doc/migration/`: 2017→2026 migration documentation -- `doc/requirement/`: Requirements and specifications -- `doc/working/`: Active development documentation - -### Build Configuration - -- **Target Framework**: .NET Framework 4.8 (x64 platform) -- **Navisworks Version**: 2026 exclusive with conditional compilation (`NAVISWORKS_2026`) -- **Key Dependencies**: RoyT.AStar for pathfinding, WPF for modern UI