- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Hello,
I wrote some code in C# to get some data from the PID database and to update the P3D database then the Tag fields match.
I tested it and it works locally, but the changes don't propagate to the Construction Cloud.
The code:
var projPid = currentProj.ProjectParts["PnID"];
var dlmPid = projPid.DataLinksManager;
var dbPid = dlmPid.GetPnPDatabase();
var drawingsTable = dbPid.Tables["PipeLineGroup"];
var allPidPipes = drawingsTable.Select("Description='PIPE LINE GROUP'");
var projP3d = currentProj.ProjectParts["Piping"];
var dlmP3d = projP3d.DataLinksManager;
var dbP3d = dlmP3d.GetPnPDatabase();
drawingsTable = dbP3d.Tables["P3dLineGroup"];
var allP3dPipes = drawingsTable.Select("Tag like '%'");
foreach ( var p in allPidPipes )
{
PnPRow partRowPID = dbPid.GetRow(Convert.ToInt32(p["PnPID"]));
var linePID = $"{p["Service"]}{p["Secteur"]}{p["Page"]}{p["LineNumber"]}";
var partRowP3D = allP3dPipes.FirstOrDefault(e => e["Tag"].ToString() == linePID);
if ( partRowP3D != null )
{
ed.WriteMessage($"linePID={linePID}, partRowP3D={partRowP3D["Tag"]}");
partRowP3D.SetPropertyValue("test", "TESTAAA");
}
}
Solved! Go to Solution.