我正在尝试通过插件中的 C# 获取 Autocad 项目的项目详细信息。我可以访问以下类中的一些属性。
Autodesk.ProcessPower.PlantInstance.PlantApplication.CurrentProject
但是,此类不提供所有项目详细信息,例如项目编号等。如何通过 C# 访问项目详细信息?
我正在尝试通过插件中的 C# 获取 Autocad 项目的项目详细信息。我可以访问以下类中的一些属性。
Autodesk.ProcessPower.PlantInstance.PlantApplication.CurrentProject
但是,此类不提供所有项目详细信息,例如项目编号等。如何通过 C# 访问项目详细信息?
您必须将 CurrentProject 转换为适当的项目部分,如下所示:http: //adndevblog.typepad.com/autocad/2012/05/getting-all-the-properties-of-a-selected-pipe-in -plant3d-using-cnet.html
他们使用对 P3dProjectParts.dll 的引用来获取 PipingProject 类。有一个基础 ProjectPartsMgd.dll,其中包含通用项目部分实现。
花了一点时间从项目详细信息中获取项目编号,所以我想我会在这里发布我的解决方案:
PnIdProject oPnIdProject =
(PnIdProject)PlantApplication.CurrentProject.ProjectParts["PnID"];
//Assuming you want Project Number from the "General" category. If you have
//a custom category property you want, just replace "General" with the name
//of the custom category
List<ProjectProperty> metaData =
oPnIdProject.GetProjectPropertyMetadata("General");
string projectNumberString = "";
foreach (ProjectProperty prop in metaData)
{
if (prop.Name == "Project_Number")
{
projectNumberString = oPnIdProject.GetProjectPropertyValue(prop);
}
}
我假设任何项目部分都可以这样做......