4. 集成规范数据模型
<p>[TOC]</p>
<h4>集成规范模型说明</h4>
<p><strong>导入/检入/校验</strong> 等功能都围绕该标准数据包(StandardModel)展开,其dataModel如下述示例代码</p>
<ol>
<li>fileModes 图纸文档模型数组,包含 零件图、装配图、工程图,一张图纸只有一个fileModel</li>
<li>propModels 一个图纸模型可以对应<strong>多个</strong>物料属性模型</li>
<li>useRootPropId 根属性对象的propModelId</li>
</ol>
<pre><code>{
&quot;abstractCadType&quot;: &quot;_3d&quot;,
&quot;cadCommand&quot;: 1,
&quot;cadType&quot;: &quot;solidworks&quot;,
&quot;dataModel&quot;: {
&quot;fileModels&quot;: [...],
&quot;propModels&quot;: [...],
&quot;useRootPropId&quot;: &quot;...&quot;
},
&quot;msgSendWay&quot;: 0
}
</code></pre>
<hr />
<h4>1. 标准文档对象 FileModel</h4>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">必填</th>
<th style="text-align: left;">类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">cadId</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>对应包含该属性对象的Cad文档Id,如图纸模型Id</td>
</tr>
<tr>
<td style="text-align: left;">activeConfigPropId</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">string</td>
<td>指向<strong>propModels</strong>中对应的<strong>propModelId</strong></td>
</tr>
<tr>
<td style="text-align: left;">createDate</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>创建日期</td>
</tr>
<tr>
<td style="text-align: left;">modifyDate</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>修改日期</td>
</tr>
<tr>
<td style="text-align: left;">fileName</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>文档的名称,在数组中唯一</td>
</tr>
<tr>
<td style="text-align: left;">displayName</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>显示的名称,默认值为fileName</td>
</tr>
<tr>
<td style="text-align: left;">directoryPath</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>文档所在目录的绝对路径,导入/检入时从该目录获取文档进行操作,在数组中唯一</td>
</tr>
<tr>
<td style="text-align: left;">fileHash</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">string</td>
<td>文档HASH值,程序中将用来判断文件是否有更改</td>
</tr>
<tr>
<td style="text-align: left;">fileType</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">int</td>
<td>CAD文档类型,详细[这里](<a href="https://www.showdoc.com.cn/kingdeeplm/11558476494961932">https://www.showdoc.com.cn/kingdeeplm/11558476494961932</a> "这里")</td>
</tr>
<tr>
<td style="text-align: left;">fileLevel</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">int</td>
<td>文件级别,0:正常;1:轻化;2:压缩;3:虚文档;4:物料;5:内部保存;6:光板物料</td>
</tr>
<tr>
<td style="text-align: left;">hasBeenRecord</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">bool</td>
<td>系统是否已有相同数据(一般从系统接口获取),如已存在则propModel与下层数据包自动从系统中获取</td>
</tr>
<tr>
<td style="text-align: left;">isRoot</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">bool</td>
<td>是否根节点</td>
</tr>
<tr>
<td style="text-align: left;">size</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">long</td>
<td>文档字节大小</td>
</tr>
<tr>
<td style="text-align: left;">isStandarPart</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">bool</td>
<td>是否标准零件</td>
</tr>
<tr>
<td style="text-align: left;">child</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">array[<a href="#child_object">child_object</a>]</td>
<td>直接子文档(下层图纸)关系对象数组</td>
</tr>
<tr>
<td style="text-align: left;">drawingDocs</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">array[string]</td>
<td>关联的 <strong>工程图cadId</strong> 列表</td>
</tr>
<tr>
<td style="text-align: left;">pdfDocs</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">array[string]</td>
<td>关联的 <strong>pdf 的 cadId</strong> 列表</td>
</tr>
</tbody>
</table>
<p><strong><span id="child_object">child_object</span> 参数</strong></p>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">必填</th>
<th style="text-align: left;">类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">relationId</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>关系的<strong>唯一</strong>id</td>
</tr>
<tr>
<td style="text-align: left;">cadId</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>子文档(图纸)模型ID</td>
</tr>
<tr>
<td style="text-align: left;">fileName</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">bool</td>
<td>子文档(图纸)的名称</td>
</tr>
</tbody>
</table>
<hr />
<h4>2. 标准属性对象 Property</h4>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">必填</th>
<th style="text-align: left;">类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">cadId</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>对应包含该属性对象的Cad文档Id,如图纸模型Id</td>
</tr>
<tr>
<td style="text-align: left;">propModelId</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>唯一,属性模型Id。插件自行生成的Guid,客户端响应结果中,也会携带该Id,以便数据进行唯一匹配</td>
</tr>
<tr>
<td style="text-align: left;">propInfoType</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>属性类型名称,cadId + propInfoType 也是唯一的</td>
</tr>
<tr>
<td style="text-align: left;">propInfo</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">Dictionary<string, string></td>
<td>具体物料属性的键值字典,里面的Key严格匹配大小写</td>
</tr>
<tr>
<td style="text-align: left;">propTypeInfo</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">Dictionary<string, int></td>
<td>具体物料属性的类型字典,客户端响应时一般不包含,里面的Key严格匹配大小写</td>
</tr>
<tr>
<td style="text-align: left;">propExpressionInfo</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">Dictionary<string, string></td>
<td>具体物料属性的表达式字典,客户端响应时一般不包含,里面的Key严格匹配大小写</td>
</tr>
<tr>
<td style="text-align: left;">child</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">array[<a href="#property_child">property_child</a>]</td>
<td>子项物料属性模型数组</td>
</tr>
</tbody>
</table>
<p><strong><span id="property_child">property_child</span> 参数</strong></p>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">必填</th>
<th style="text-align: left;">类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">relationId</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>关系的<strong>唯一</strong>id,<strong>指向 fileModels 中 child 的 relationId</strong></td>
</tr>
<tr>
<td style="text-align: left;">propModelId</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>子文档(图纸)模型ID</td>
</tr>
<tr>
<td style="text-align: left;">excludeFromBom</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">bool</td>
<td>是否不在明细表中</td>
</tr>
<tr>
<td style="text-align: left;">compressState</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>压缩状态,枚举类型,Normal/Lightening/Compress/Hidden/InternalSave/Suppressed</td>
</tr>
<tr>
<td style="text-align: left;">relatedProp</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">Dictionary<string, string></td>
<td>关系属性字典,包含了数量等</td>
</tr>
</tbody>
</table>