How to: Get project data


Topic:

Get project data


Class hierarchy:

IPCsApplication IPCsDocument IPCsDrawing


Description:

How to read and write to the project's data


Sourcecode:
[+] Delphi
uses DPSCAD_TLB;
var
  PCSComOb : IPCsApplication;

procedure TForm1.GetProjectData();
var
  i, t : integer;
  ADrawing : IPCsDrawing;
  ASymbols : IPCsSymbols;
begin
  PCsApplication := coApplication.Create();
  {the listbox that will contain project data}
  ListBoxProjectData.Clear;
  ADrawing := PCsApplication.ActiveDocument.Drawing;
  {running through every projectdata in project}
  for i := 0 to VarArrayHighBound(ADrawing.ProjectDataDefs,1) do
    begin
      ListBoxProjectData.Items.Add('Field Name = ' + ADrawing.ProjectDataDefs[i]);
      ListBoxProjectData.Items.Add('Value = ' + ADrawing.ProjectData[i]);
      ListBoxProjectData.Items.Add('');
    end
end;

[+] Visual Basic
Dim PCsApplication As Dpscad.IPCsApplication
Dim ADrawing As Dpscad.PCsDrawing
Dim PCs As IPCsApplication

Set PCs = CreateObject("PCsELautomation.Application")

'the listbox that will contain project data
ADrawing = PCsApplication.ActiveDocument.Drawing
Dim PDD As System.Array = DirectCast(ADrawing.ProjectDataDefs, System.Array)
'running through every projectdata in project
For i As Integer = 0 To PDD.Length - 1
  listBox1.Items.Add("Field Name = " & PDD.GetValue(i))
  listBox1.Items.Add("Value = " & ADrawing.get_ProjectData(i))
  listBox1.Items.Add("")
Next

[+] C#
Dpscad.IPCsApplication PCsApplication;
Dpscad.PCsDrawing ADrawing;

Type PCs = Type.GetTypeFromProgID("PCsELautomation.Application");
PCsApplication = (Dpscad.IPCsApplication)Activator.CreateInstance(PCs);

/*the listbox that will contain project data*/
ADrawing = PCsApplication.ActiveDocument.Drawing;
System.Array PDD = (System.Array)ADrawing.ProjectDataDefs;
/*running through every projectdata in project*/
for (int i = 0; i < PDD.Length ; i++)
{
  listBox1.Items.Add("Field Name = " + PDD.GetValue(i));
  listBox1.Items.Add("Value = " + ADrawing.get_ProjectData(i));
  listBox1.Items.Add("");
}