Converting PLY to PCG is fairly simple if you have a good text editor like Textpad (
http://www.textpad.com/).
Export your points from PhotoScan as PLY using these settings (also attached below):
Shift: 0, 0, 0
Type: Dense (or Sparse if it's good enough)
Point colors: Yes
Point normals: No (I don't think PTS supports that)
Binary encoding: No
Precision: Either leave at 6 or reduce to 3 to save some file size if you are working in meter units and millimeters are precise enough.
Once you have exported the PLY file open it in Textpad, and it will look something like this:
ply
format ascii 1.0
element vertex 40497
property double x
property double y
property double z
property uchar red
property uchar green
property uchar blue
end_header
-4.926942 4.215927 7.520528 85 38 0
-4.834573 4.392451 8.721108 140 85 27
-5.201404 4.767813 2.587182 16 15 12
-5.061094 4.770470 4.808211 26 16 14
-5.034769 4.764192 5.011490 23 19 16
-5.037882 4.766567 5.009295 30 24 21
-4.914380 4.302697 7.428827 73 40 0
etc
make a note of the element vertex number (this is the number of points exported) and then delete the entire header, replacing it with that number, to look like this:
40497
-4.926942 4.215927 7.520528 85 38 0
-4.834573 4.392451 8.721108 140 85 27
-5.201404 4.767813 2.587182 16 15 12
-5.061094 4.770470 4.808211 26 16 14
-5.034769 4.764192 5.011490 23 19 16
-5.037882 4.766567 5.009295 30 24 21
-4.914380 4.302697 7.428827 73 40 0
etc
All that is left to do is add a column required by the PTS format, unfortunately it needs to be the 4th column, so we have to insert it after column 3 using a regular expression search and replace. This column represents the intensity value (this is recorded by a lidar scanner and expected to be in a pts file but we can make up a value).
In textpad press 'F8' to open the search and replace dialog, and enter the following expressions (also attached below) make sure you have 'Regular expression' enabled:
Find what:
\(^[^ ]+ [^ ]+ [^ ]+\)
Replace with:
& 100
This will select the first three columns separated by spaces, and replace them by the same text with a 100 appended as the 4th column. Then click <Replace All>.
Just to check you have done it right, it should now look like this:
40497
-4.926942 4.215927 7.520528 100 85 38 0
-4.834573 4.392451 8.721108 100 140 85 27
-5.201404 4.767813 2.587182 100 16 15 12
-5.061094 4.770470 4.808211 100 26 16 14
-5.034769 4.764192 5.011490 100 23 19 16
-5.037882 4.766567 5.009295 100 30 24 21
-4.914380 4.302697 7.428827 100 73 40 0
etc
Save this as a .PTS file and Revit/Autocad should be able to index it as a PCG.