Skip to content

Commit 6f4f6cb

Browse files
committed
Update Contributing.md
1 parent 5ab1e5d commit 6f4f6cb

File tree

1 file changed

+50
-24
lines changed

1 file changed

+50
-24
lines changed

Contributing.md

Lines changed: 50 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,33 @@
11
## Table of contents
22

33
<!-- TOC -->
4-
* [Fork, Clone, Branch and Create your PR](#fork-clone-branch-and-create-your-pr)
5-
* [Rules](#rules)
6-
* [Building](#building)
7-
* [Prerequisites](#prerequisites)
8-
* [Initialize and update submodules](#initialize-and-update-submodules)
9-
* [Compiling Source Code](#compiling-source-code)
10-
* [Creating MSI installer on a local machine](#creating-msi-installer-on-a-local-machine)
11-
* [Publish a new Release](#publish-a-new-release)
12-
* [Creating a new release from the IDE](#creating-a-new-release-from-the-ide)
13-
* [Creating a new release from the Terminal](#creating-a-new-release-from-the-terminal)
14-
* [Creating a new release on GitHub](#creating-a-new-release-on-github)
15-
* [Architecture](#architecture)
16-
* [Descriptors](#descriptors)
17-
* [IDescriptorResolver](#idescriptorresolver)
18-
* [Single Value Resolution](#single-value-resolution)
19-
* [Multiple Value Resolution](#multiple-value-resolution)
20-
* [Disabling Methods](#disabling-methods)
21-
* [Targeting Specific Overloads](#targeting-specific-overloads)
22-
* [IDescriptorExtension](#idescriptorextension)
23-
* [IDescriptorRedirector](#idescriptorredirector)
24-
* [IDescriptorCollector](#idescriptorcollector)
25-
* [IDescriptorConnector](#idescriptorconnector)
26-
* [UI Styling](#ui-styling)
4+
* [Fork, Clone, Branch and Create your PR](#fork-clone-branch-and-create-your-pr)
5+
* [Rules](#rules)
6+
* [Building](#building)
7+
* [Prerequisites](#prerequisites)
8+
* [Initialize and update submodules](#initialize-and-update-submodules)
9+
* [Compiling Source Code](#compiling-source-code)
10+
* [Creating MSI installer on a local machine](#creating-msi-installer-on-a-local-machine)
11+
* [Publish a new Release](#publish-a-new-release)
12+
* [Creating a new release from the IDE](#creating-a-new-release-from-the-ide)
13+
* [Creating a new release from the Terminal](#creating-a-new-release-from-the-terminal)
14+
* [Creating a new release on GitHub](#creating-a-new-release-on-github)
15+
* [Architecture](#architecture)
16+
* [Descriptors](#descriptors)
17+
* [IDescriptorResolver](#idescriptorresolver)
18+
* [Single Value Resolution](#single-value-resolution)
19+
* [Multiple Value Resolution](#multiple-value-resolution)
20+
* [Disabling Methods](#disabling-methods)
21+
* [Targeting Specific Overloads](#targeting-specific-overloads)
22+
* [IDescriptorExtension](#idescriptorextension)
23+
* [IDescriptorRedirector](#idescriptorredirector)
24+
* [IDescriptorCollector](#idescriptorcollector)
25+
* [IDescriptorConnector](#idescriptorconnector)
26+
* [UI Styling](#ui-styling)
27+
* [UI Development and Testing](#ui-development-and-testing)
28+
* [Setting Up the UI Playground](#setting-up-the-ui-playground)
29+
* [Benefits of UI Playground](#benefits-of-ui-playground)
30+
* [UI Development Workflow](#ui-development-workflow)
2731
<!-- TOC -->
2832

2933
## Fork, Clone, Branch and Create your PR
@@ -442,4 +446,26 @@ public sealed class TreeViewItemTemplateSelector : DataTemplateSelector
442446
}
443447
```
444448

445-
For custom visualization of specific data types, create specialized templates following the pattern above and register them in the appropriate style selectors.
449+
For custom visualization of specific data types, create specialized templates following the pattern above and register them in the appropriate style selectors.
450+
451+
## UI Development and Testing
452+
453+
RevitLookup provides a dedicated environment for UI development and testing without launching Revit, which significantly speeds up the development cycle. All UI changes should first be developed and tested in the `RevitLookup.UI.Playground` project using the `Debug Frontend` solution configuration.
454+
455+
### Setting Up the UI Playground
456+
457+
1. Select the `Debug Frontend` configuration from the solution configuration dropdown.
458+
2. Set `RevitLookup.UI.Playground` as the startup project.
459+
460+
### Benefits of UI Playground
461+
462+
- **Faster Development Cycle**: No need to wait for Revit to launch, which can save significant time during UI development.
463+
- **Isolated Testing**: Test UI components in isolation without Revit's complexity.
464+
- **Mock Data**: The playground uses mock data that simulates real Revit objects for realistic UI testing.
465+
466+
### UI Development Workflow
467+
468+
1. **Design and Implement** your UI changes in the `RevitLookup.UI.Playground` project.
469+
2. **Test and Debug** your changes in the playground environment.
470+
3. **Refine and Polish** your UI based on the test results.
471+
4. **Integrate** your changes into the main RevitLookup codebase only after you're satisfied with the results in the playground.

0 commit comments

Comments
 (0)