So my custom tool script first creates a new feature layer based on an existing feature layer using the MakeFeature_management function with just the certain fields I want showing. After that, the tool has a variable called inputLayer = to the raw string of the newly created Feature Layer. Here's what the script looks like so far:
<SPAN class="keyword token">import</SPAN> arcpy
<SPAN class="keyword token">import</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>mapping <SPAN class="keyword token">as</SPAN> map
mxd <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>mapping<SPAN class="punctuation token">.</SPAN>MapDocument<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"Current"</SPAN><SPAN class="punctuation token">)</SPAN>
visibleFields <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">[</SPAN><SPAN class="string token">"Field1"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"Field2"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"Field3"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"Field4"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"Field5"</SPAN><SPAN class="punctuation token">]</SPAN>
field_info <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>Describe<SPAN class="punctuation token">(</SPAN><SPAN class="string token">'Fiber Segments'</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN>fieldInfo
df <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>mapping<SPAN class="punctuation token">.</SPAN>ListDataFrames<SPAN class="punctuation token">(</SPAN>mxd<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN>
<SPAN class="keyword token">for</SPAN> index <SPAN class="keyword token">in</SPAN> xrange<SPAN class="punctuation token">(</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">,</SPAN> field_info<SPAN class="punctuation token">.</SPAN>count<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">if</SPAN> field_info<SPAN class="punctuation token">.</SPAN>getfieldname<SPAN class="punctuation token">(</SPAN>index<SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">not</SPAN> <SPAN class="keyword token">in</SPAN> visibleFields<SPAN class="punctuation token">:</SPAN>
field_info<SPAN class="punctuation token">.</SPAN>setvisible<SPAN class="punctuation token">(</SPAN>index<SPAN class="punctuation token">,</SPAN><SPAN class="string token">"HIDDEN"</SPAN><SPAN class="punctuation token">)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>Delete_management<SPAN class="punctuation token">(</SPAN><SPAN class="string token">'Output Feature'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">""</SPAN><SPAN class="punctuation token">)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>MakeFeatureLayer_management<SPAN class="punctuation token">(</SPAN><SPAN class="string token">'Input Feature'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'Output Feature Layer'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN>field_info<SPAN class="punctuation token">)</SPAN>
addLayer <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>mapping<SPAN class="punctuation token">.</SPAN>Layer<SPAN class="punctuation token">(</SPAN><SPAN class="string token">'Output Feature Layer'</SPAN><SPAN class="punctuation token">)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>mapping<SPAN class="punctuation token">.</SPAN>AddLayer<SPAN class="punctuation token">(</SPAN>df<SPAN class="punctuation token">,</SPAN> addLayer<SPAN class="punctuation token">)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>RefreshTOC<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>RefreshActiveView<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
inputLayer <SPAN class="operator token">=</SPAN> r<SPAN class="string token">'Output Feature Layer'</SPAN>
symbologyLayer <SPAN class="operator token">=</SPAN> r<SPAN class="string token">'C:\pathway\Output Feature Layer symbology.lyr'</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>ApplySymbologyFromLayer_management <SPAN class="punctuation token">(</SPAN>inputLayer<SPAN class="punctuation token">,</SPAN> symbologyLayer<SPAN class="punctuation token">)</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>
The issue here is that the symbology isn't applying to the Output Feature Layer when the entire script is run. If you run these lines individually in the python module in ArcMap, they run fine and apply the symbology. Any thoughts on this here?