C#读取和修改Inventor模型的属性

  1. 安装Inventor软件
  2. 创建C#控制台程序,引入Inventor相关dll
    导入Inventor相关dll
  3. 代码获取相关模型及属性
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using Inventor;

namespace InventorTest
{
    class Program
    {
        static void Main(string[] args)
        {
            Inventor.Application inventorApp = null;
            try
            {
                inventorApp = Marshal.GetActiveObject("Inventor.Application") as Inventor.Application;
            }
            catch
            {
                var inventorType = Type.GetTypeFromProgID("Inventor.Application");
                inventorApp = Activator.CreateInstance(inventorType) as Inventor.Application;
                inventorApp.Visible = true;
            }

            AssemblyDocument asmDoc = (AssemblyDocument)inventorApp.Documents.Open(@"Path", true);

            AssemblyComponentDefinition asmDef = asmDoc.ComponentDefinition;

            foreach (ComponentOccurrence oOcc in asmDef.Occurrences)
            {
                Document oDoc = (Document)oOcc.Definition.Document;
                // using GUID to find the "Summary Information"
                PropertySet oPS = oDoc.PropertySets["{F29F85E0-4FF9-1068-AB91-08002B27B3D9}"];
                // using proID to find TITLE
                Inventor.Property oP = oPS.ItemByPropId[(int)PropertiesForSummaryInformationEnum.kTitleSummaryInformation];
                oP.Value = oP.Value + "new";
            }
        }
    }
}

  1. 属性列表(PropertySets对应表)
    在这里插入图片描述
    在这里插入图片描述
  2. 参考
    PropertySets对应表
    代码参考
  3. 运行结果
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/beihuanlihe130/article/details/107352288
今日推荐