Database object of a drawing file.
Supported platforms: Windows only
Namespace: TRANSMITTALLib
Assembly: acETransmit20.tlb
VBA/VB.NET/C#:
object.database
Type: TransmittalFile
The object this property applies to.
Read-only: Yes
Type: Object (AcadDatabase)
The AcadDatabse object is defined in the AutoCAD object library.
Releases: AutoCAD 2005 and later
VB.NET:
' Custom command that lists the file dependents
<CommandMethod("FileDependents")> _
Public Shared Sub FileDependents()
' Create a transmittal operation
Dim tro As TransmittalOperation = New TransmittalOperation()
' Setup the transmittal behavior
Dim ti As TransmittalInfo = TransInfo(tro.getTransmittalInfoInterface(), _
"C:\Users\Public\TransmittalAPITest\")
' Define file to add to the transmittal
Dim tf As TransmittalFile = Nothing
Dim dwgFile As String = "C:\AutoCAD\Sample\Sheet Sets\Architectural\A-01.dwg"
' Add file to transmittal and parse its information
If tro.addDrawingFile(dwgFile, tf) = AddFileReturnVal.eFileAdded Then
' Get each of the referenced files in the file being added
Dim tfg As TransmittalFilesGraph = tro.graphInterfacePtr()
Dim rootTF As TransmittalFile = tfg.getRoot()
Dim tfList As New List(Of TransmittalFile)()
tfList.Add(rootTF)
' Step through each of the referenced files identified
While tfList.Count > 0
tf = tfList(0)
tfList.RemoveAt(0)
Dim numberOfDependents As Integer = tf.numberOfDependents
For i As Integer = 0 To numberOfDependents - 1
Dim childTF As TransmittalFile = tf.getDependent(i)
tfList.Add(childTF)
' Get the current editor
Dim acEditor As Editor = Application.DocumentManager.MdiActiveDocument.Editor
acEditor.WriteMessage(Environment.NewLine + "Dependent file name:" & childTF.sourcePath)
' See if the dependent file is a drawing or not
If System.IO.Path.GetExtension(childTF.sourcePath).ToUpper() = ".DWG" Then
' Get the database of the drawing
Dim acDb As AcadDatabase = childTF.database
' If the drawing is not null, display the name sof the layers in the drawing
If Not acDb Is Nothing Then
acEditor.WriteMessage(Environment.NewLine & "Layer Names:")
' Step through each of the layers
For Each acLyr As AcadLayer In acDb.Layers
' Output the names of each layer
acEditor.WriteMessage(Environment.NewLine & " " & acLyr.Name)
Next
End If
End If
Next
End While
End If
End Sub
C#:
// Custom command that lists the file dependents
[CommandMethod("FileDependents")]
public static void FileDependents()
{
// Create a transmittal operation
TransmittalOperation tro = new TransmittalOperation();
// Setup the transmittal behavior
TransmittalInfo ti = TransInfo(tro.getTransmittalInfoInterface(), @"C:\Users\Public\TransmittalAPITest\");
// Define file to add to the transmittal
TransmittalFile tf = null;
string dwgFile = @"C:\AutoCAD\Sample\Sheet Sets\Architectural\A-01.dwg";
// Add file to transmittal and parse its information
if (tro.addDrawingFile(dwgFile, out tf) == AddFileReturnVal.eFileAdded)
{
// Get each of the referenced files in the file being added
TransmittalFilesGraph tfg = tro.graphInterfacePtr();
TransmittalFile rootTF = tfg.getRoot();
List<TransmittalFile> tfList = new List<TransmittalFile>();
tfList.Add(rootTF);
// Step through each of the referenced files identified
while (tfList.Count > 0)
{
tf = tfList[0];
tfList.RemoveAt(0);
int numberOfDependents = tf.numberOfDependents;
for (int i = 0; i <= numberOfDependents - 1; i++)
{
TransmittalFile childTF = tf.getDependent(i);
tfList.Add(childTF);
// Get the current editor
Editor acEditor = Application.DocumentManager.MdiActiveDocument.Editor;
acEditor.WriteMessage(Environment.NewLine + "Dependent file name:" + childTF.sourcePath);
// See if the dependent file is a drawing or not
if (Path.GetExtension(childTF.sourcePath).ToUpper() == ".DWG")
{
// Get the database of the drawing
AcadDatabase acDb = childTF.database;
// If the drawing is not null, display the name sof the layers in the drawing
if (acDb != null)
{
acEditor.WriteMessage(Environment.NewLine + "Layer Names:");
// Sstep through each of the layers
foreach (AcadLayer acLyr in acDb.Layers)
{
// Output the names of each layer
acEditor.WriteMessage(Environment.NewLine + " " + acLyr.Name);
}
}
}
}
}
}
}