The rules for determining the amount of cable that can be placed in a cable tray or conduit are typically set by the owner; however, it is common in the U.S. to mandate that the fill amounts conform to the guidelines established by the National Fire Protection Association (NFPA) in the National Electric Code (NEC). Therefore, the delivered implementation is driven by NEC rules.
If you want to change these settings, the software delivers a .NET Project that you can customize to define your own rules. The CableRules.csproj file is delivered to the [Reference Data Folder]\SharedContent\Programming\ExampleCode\Cable\Rules\CableRules folder. The project contains a CableFillRule.cs file.
NECStandardTables.xml
This file mainly contains data from the NEC Specification tables under article 392. These tables specify the maximum allowed area for different sizes of cable trays. You need to modify this file only when you want to include other standard tables that are similar to NEC. The NECStandardTables.xml is delivered to the [Reference Data Folder]\SharedContent\Bin\Cable\Rules\Release folder.
Table Name in XML |
NEC 2008 (Article 392) Reference Table |
Tray Fill Calcs Flowchart |
---|---|---|
TABLE3929A |
392.9(A)(2); Column 1 |
NEC 392.9 (A)(1) |
TABLE3929C |
392.9(C)(2); Column 3 |
NEC 392.9 (C)(3) |
TABLE3929E1 |
392.9(E); Column 1 |
NEC 392.9 (E)(1) |
TABLE3929E2 |
392.9(E); Column 2 |
NEC 392.9 (E)(2) |
TABLE3929F1 |
392.9(F); Column 1 |
NEC 392.9 (F)(1) |
TABLE3929F2 |
392.9(F); Column 2 |
NEC 392.9 (F)(2) |
TABLE39210A |
392.10(A)(2); Column 1 |
NEC 392.10 (A)(2) |
CalculationProgIDs.xml
This file defines the ProgIDs for the calculation rules. The CalculationProgIDs.xml is delivered to the [Reference Data Folder]\SharedContent\Xml folder. The default .NET ProgID is CableRules,Ingr.SP3D.Content.Cable.Rules.CableFillRule.
<CalculationProgIDs>
<ProgID RuleName = "CableFillCalculationRule">CableRules,Ingr.SP3D.Content.Cable.Rules.CableFillRule</ProgID>
</CalculationProgIDs>
CableFillRule.cs
The main method, GetCableFillValueForFeature() in CableFillRule.cs contains two important methods for calculating the fill: GetCwayFillParams() and GetConduitFillParams(). The existing methods are overwritten when you customize them. Below are the definitions of both the methods:
-
GetCwayFillParams(RouteFeature CablewayFeatObj, out int lNoCables, out double dWireArea, out string strTradeSize, out double dTotalTraverseArea, out double dAllowableTraverseArea, out double dPercentFill, out double dAvailableTraverseArea, out string strStatus)
-
GetConduitFillParams(RouteFeature pConduitFeatObject, long lNoCables, double dWireArea, out string strTradeSize, out double dTotalTraverseArea, out double dAllowableTraverseArea, out double dPercentFill, out double dAvailableTraverseArea, out string strStatus)
The most important arguments in both methods are CablewayFeatObj and dPercentFill.
The arguments listed below are return parameters that are used only for reporting purposes.
-
dTotalTraverseArea
-
dAllowableTraverseArea
-
dAvailableTraverseArea
-
bStatus
General Workflow
The general workflow is as follows:
-
Initialize the NEC tables.
-
Get the FillEfficiency for the feature.
-
Get the collection of cables in the feature.
-
Get the required properties for each cable in the feature.
-
Get the cableway part, and then get properties from that part.
-
Call the CalculateMaximumFill method to process the fill as specified by the NEC rules.
-
Set the dPercentFill and then exit the function.