Application: ProximityDetection_WallJoinControl
Revit Platform: All
Revit Version: 2011.0
First Released For: 2011.0
Programming Language: C#
Skill Level: Medium
Category: Geometry
Type: ExternalCommand

Subject: Proximity Detection and Wall Join Control
Summary: 
This sample is to demonstrate how to “find columns in wall”, “find elements blocking egress”, “find walls (nearly joined to) end of walls” and “check walls join/disjoin states” by ElementIntersectsSolidFilter, ElementIntersectsElementFilter and WallUtils.

Classes:
Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.Document
Autodesk.Revit.Element
Autodesk.Revit.DB;
Autodesk.Revit.UI;

Project Files: 
Command.cs
This file contains a class Command which implements IExternalCommand interface. The function of the class is to create two instances of ProximityDetection and WallJoinControl, and pop the dialog for user operation and displaying the results.

ProximityDetection.cs
This file contains a class ProximityDetection which implements three applications - “find columns in wall”, “find elements blocking egress”, “find walls (nearly joined to) end of walls”.

WallJoinControl.cs
This file contains a class WallJoinControl which implements the application - “check walls join/disjoin states”.

ProximityDetectionAndWallJoinControlForm.cs
This file contains a window form which allows user to select the operation and view the result.

Description: 
The sample implements IExternalCommand interface and allows user to select the operation via form. User could run the applications, and then user can read the results in the form.
-	To show the form, use the method ShowDialog of ProximityDetectionAndWallJoinControlForm.
-	Select first radio button to find columns in wall, use the method findBlockingElements of ProximityDetection.
-	Select second radio button to find elements blocking egress, use the method findColumnsInWall of ProximityDetection.
-	Select third radio button to find walls (nearly joined to) end of walls, use the method findNearbyWalls of ProximityDetection.
-	Select fourth radio button to check walls join/disjoin states, use the method checkJoinedWalls of WallJoinControl.
-	To view the results, check the treeview of form.

Instructions: 
1.	Set up addin file and start revit to load this sample.
2.	Launch Proximity Detection and Wall Join Control via the external command menu.
4.	Select the operation - “find columns in wall”, or “find elements blocking egress”, or “find walls (nearly joined to) end of walls” or “check walls join/disjoin states”. Click OK button.
6.	According to the operation you selected, the sample will display the results of operation. You can view the information by clicking the tree view.
7.	Click Cancel button to end.