/// <summary> /// Updates the finish for all parts /// </summary> public void updateFinish() { AssemblyDocument assemblyDoc = (AssemblyDocument)invApp.ActiveDocument; DocumentsEnumerator allRefDocs = assemblyDoc.AllReferencedDocuments; // Find all part files and change the finish foreach (Document oDoc in allRefDocs) { if (oDoc.DocumentType.Equals(DocumentTypeEnum.kPartDocumentObject)) { PartDocument partDoc = (PartDocument)oDoc; PropertySet partCustomPropSet = partDoc.PropertySets["Inventor User Defined Properties"]; Property partProperty = partCustomPropSet["Finish"]; partProperty.Value = finish; // Release Objectsz partDoc = null; partCustomPropSet = null; partProperty = null; } } // Release objects allRefDocs = null; assemblyDoc = null; }
/// <summary> /// Updates the material for all parts /// </summary> public void updateMaterial() { AssemblyDocument assemblyDoc = (AssemblyDocument)invApp.ActiveDocument; DocumentsEnumerator allRefDocs = assemblyDoc.AllReferencedDocuments; // Find all part files and change the material foreach (Document oDoc in allRefDocs) { if (oDoc.DocumentType.Equals(DocumentTypeEnum.kPartDocumentObject)) { PartDocument partDoc = (PartDocument)oDoc; PartComponentDefinition partDef = partDoc.ComponentDefinition; // Try to set the material try { partDef.Material.Name = material; } catch { } finally { // Release objects partDoc = null; partDef = null; } } } // Release objects allRefDocs = null; assemblyDoc = null; }
/// <summary> /// Make the workplanes in the model invisible /// </summary> private void workPlanesInvisible() { AssemblyDocument assemblyDoc = (AssemblyDocument)invApp.ActiveDocument; DocumentsEnumerator allRefDocs = assemblyDoc.AllReferencedDocuments; foreach (Document oDoc in allRefDocs) { if (oDoc.DocumentType.Equals(DocumentTypeEnum.kPartDocumentObject) || oDoc.DocumentType.Equals(DocumentTypeEnum.kAssemblyDocumentObject)) { dynamic oCompDef = ((PartDocument)oDoc).ComponentDefinition; WorkPlanes oDocWorkPlanes = oCompDef.WorkPlanes; foreach (WorkPlane oWp in oDocWorkPlanes) { oWp.Visible = false; } // Release objects oDocWorkPlanes = null; oCompDef = null; } } // Release objects allRefDocs = null; assemblyDoc = null; }
private void ReplaceReferencesMethod(string oldFilePath, string newFilePath) { try { // Open document with specific filepath ApprenticeServerComponent oApprentice = new ApprenticeServerComponent(); Document oDoc = (Document)oApprentice.Open(oldFilePath); // Find where file was used before renaming DocumentsEnumerator oDocsEnum = oDoc.ReferencingDocuments; // Save file with new name oDoc.SaveAs(newFilePath, false); // Look through referencing documents foreach (Document locDoc in oDocsEnum) { foreach (ReferencedFileDescriptor oRefFileDesc in locDoc.ReferencedFileDescriptors) { if (oRefFileDesc.FullFileName == oldFilePath) { // Replace the reference oRefFileDesc.PutLogicalFileNameUsingFull(newFilePath); } } } oApprentice = null; // Define file name string filename = System.IO.Path.GetFileName(oldFilePath); // Find IDW files and export PDF InventorPlugins.ExportPDF exportPDF = new InventorPlugins.ExportPDF(inventorApp, oDoc, oldFilePath, newFilePath); exportPDF = null; // Export to DXF InventorPlugins.ExportDXF exportDXF = new InventorPlugins.ExportDXF(inventorApp, oDoc, filename); exportDXF = null; // Close document oDoc.Close(true); oDoc = null; // Delete old files if (System.IO.File.Exists(oldFilePath)) { System.IO.File.Delete(oldFilePath); } } catch (Exception ex) { MessageBox.Show(ex.Message, System.Reflection.MethodBase.GetCurrentMethod().Name, MessageBoxButton.OK); } }
public void pushChildren() { DocumentsEnumerator allRefDocs = assemblyDoc.AllReferencedDocuments; try { foreach (Document oDoc in allRefDocs) { if (oDoc.DocumentType.Equals(DocumentTypeEnum.kPartDocumentObject)) { // For Parts PartDocument partFile = (PartDocument)oDoc; PartComponentDefinition partFileDef = partFile.ComponentDefinition; UserParameters partParameters = partFileDef.Parameters.UserParameters; ArrayList paraList = new ArrayList(); foreach (Parameter parameter in partParameters) { paraList.Add(parameter.Name); } try { foreach (Parameter parameter in assemblyParameters) { if (parameter.IsKey && !paraList.Contains(parameter.Name)) { // Must use add by value to get parameters that are nonnumeric partParameters.AddByValue(parameter.Name, parameter.Value, parameter.get_Units()); // partParameters.AddByExpression(parameter.Name, parameter.Value, parameter.get_Units()); } } } catch (Exception) { throw; } } else if (oDoc.DocumentType.Equals(DocumentTypeEnum.kAssemblyDocumentObject)) { // For Subassemblies AssemblyDocument partFile = (AssemblyDocument)oDoc; AssemblyComponentDefinition subAssemblyDef = partFile.ComponentDefinition; UserParameters subAssemblyParameters = subAssemblyDef.Parameters.UserParameters; ArrayList paraList = new ArrayList(); try { foreach (Parameter parameter in subAssemblyParameters) { paraList.Add(parameter.Name); } foreach (Parameter parameter in assemblyParameters) { if (parameter.IsKey && !paraList.Contains(parameter.Name)) { subAssemblyParameters.AddByExpression(parameter.Name, "1", parameter.get_Units()); } } } catch (Exception) { throw; } } } } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message); } }