Conceptual Should Cost Tool Data Format


For the Conceptual Cost Model in the DMC Marketplace, contributed by PSU ARL, there is a required input file. The format is described below, and contains:


  • Basic part geometry
  • Part materials
  • Part assembly information


Future goals include moving to a json representation, and allowing a separate input containing more details about the manufacturing capabilities of a shop.


Simple Example Input for Conceptual Cost Model
<?xml version="1.0" encoding="UTF-8"?>
<mBOM version="2.0">
  <parts>
    <part id="d1146573-70b3-4463-8fac-cd4fb59fa684">
      <name>Part1</name>
      <length unit="mm">47.616109284685933</length>
      <height unit="mm">50.800000000000011</height>
      <width unit="mm">47.615254174927799</width>
      <surface_area unit="mm2">13199.451141525973</surface_area>
      <volume unit="mm3">42968.237338969411</volume>
      <weight unit="kg">42968237.338969409</weight>
      <instances>
        <instance instance_id="926d0684-20dc-4ce4-8ca3-52c2af4988cc" />
        <instance instance_id="02f2fd2f-c236-4580-8fc0-e608848aabcc" />
      </instances>
      <manufacturingDetails>
        <material>Steel</material>
        <coatings />
      </manufacturingDetails>
    </part>
    <part id="1b46e606-f302-4efb-9ee9-5ccdca90f553">
      <name>Part2</name>
      <length unit="mm">25.441961226668798</length>
      <height unit="mm">50.800000000000018</height>
      <width unit="mm">25.43822649519409</width>
      <surface_area unit="mm2">7562.3659056658926</surface_area>
      <volume unit="mm3">11384.09964272515</volume>
      <weight unit="kg">11384099.642725149</weight>
      <instances>
        <instance instance_id="fb7aacce-5c76-44de-b113-06f59597b569" />
      </instances>
      <manufacturingDetails>
        <material>Aluminum</material>
        <coatings />
      </manufacturingDetails>
    </part>
  </parts>
  <assemblies>
    <subassembly id="83b5b970-2a4b-4ec4-8c42-3b5d53e10915">
      <name>Assembly</name>
      <contains>
        <partRef instance_id="926d0684-20dc-4ce4-8ca3-52c2af4988cc" />
        <partRef instance_id="02f2fd2f-c236-4580-8fc0-e608848aabcc" />
        <partRef instance_id="fb7aacce-5c76-44de-b113-06f59597b569" />
      </contains>
      <assemblyDetails>
        <assemblyDetail>
          <mechanical>
            <fasteningMethod>bolt</fasteningMethod>
            <fasteningQuantity>4</fasteningQuantity>
          </mechanical>
        </assemblyDetail>
      </assemblyDetails>
    </subassembly>
  </assemblies>
</mBOM>




Schema for Simple Example
<?xml version="1.0" encoding="UTF-8"?>
 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
 <!-- XML Schema Generated from XML Document on Tue Apr 11 2017 10:19:55 GMT-0500 (Central Standard Time) -->
 <!-- with XmlGrid.net Free Online Service http://xmlgrid.net -->
 <xs:element name="mBOM">
 <xs:complexType>
 <xs:sequence>
 <xs:element name="parts">
 <xs:complexType>
 <xs:sequence>
 <xs:element name="part" maxOccurs="unbounded">
 <xs:complexType>
 <xs:sequence>
 <xs:element name="name" type="xs:string"></xs:element>
 <xs:element name="length" type="xs:double">
 <xs:complexType>
 <xs:attribute name="unit" type="xs:string"></xs:attribute>
 </xs:complexType>
 </xs:element>
 <xs:element name="height" type="xs:double">
 <xs:complexType>
 <xs:attribute name="unit" type="xs:string"></xs:attribute>
 </xs:complexType>
 </xs:element>
 <xs:element name="width" type="xs:double">
 <xs:complexType>
 <xs:attribute name="unit" type="xs:string"></xs:attribute>
 </xs:complexType>
 </xs:element>
 <xs:element name="surface_area" type="xs:double">
 <xs:complexType>
 <xs:attribute name="unit" type="xs:string"></xs:attribute>
 </xs:complexType>
 </xs:element>
 <xs:element name="volume" type="xs:double">
 <xs:complexType>
 <xs:attribute name="unit" type="xs:string"></xs:attribute>
 </xs:complexType>
 </xs:element>
 <xs:element name="weight" type="xs:double">
 <xs:complexType>
 <xs:attribute name="unit" type="xs:string"></xs:attribute>
 </xs:complexType>
 </xs:element>
 <xs:element name="instances">
 <xs:complexType>
 <xs:sequence>
 <xs:element name="instance" maxOccurs="unbounded">
 <xs:complexType>
 <xs:attribute name="instance_id" type="xs:string"></xs:attribute>
 </xs:complexType>
 </xs:element>
 </xs:sequence>
 </xs:complexType>
 </xs:element>
 <xs:element name="manufacturingDetails">
 <xs:complexType>
 <xs:sequence>
 <xs:element name="material" type="xs:string"></xs:element>
 <xs:element name="coatings"></xs:element>
 </xs:sequence>
 </xs:complexType>
 </xs:element>
 </xs:sequence>
 <xs:attribute name="id" type="xs:string"></xs:attribute>
 </xs:complexType>
 </xs:element>
 </xs:sequence>
 </xs:complexType>
 </xs:element>
 <xs:element name="assemblies">
 <xs:complexType>
 <xs:sequence>
 <xs:element name="subassembly">
 <xs:complexType>
 <xs:sequence>
 <xs:element name="name" type="xs:string"></xs:element>
 <xs:element name="contains">
 <xs:complexType>
 <xs:sequence>
 <xs:element name="partRef" maxOccurs="unbounded">
 <xs:complexType>
 <xs:attribute name="instance_id" type="xs:string"></xs:attribute>
 </xs:complexType>
 </xs:element>
 </xs:sequence>
 </xs:complexType>
 </xs:element>
 <xs:element name="assemblyDetails">
 <xs:complexType>
 <xs:sequence>
 <xs:element name="assemblyDetail">
 <xs:complexType>
 <xs:sequence>
 <xs:element name="mechanical">
 <xs:complexType>
 <xs:sequence>
 <xs:element name="fasteningMethod" type="xs:string"></xs:element>
 <xs:element name="fasteningQuantity" type="xs:int"></xs:element>
 </xs:sequence>
 </xs:complexType>
 </xs:element>
 </xs:sequence>
 </xs:complexType>
 </xs:element>
 </xs:sequence>
 </xs:complexType>
 </xs:element>
 </xs:sequence>
 <xs:attribute name="id" type="xs:string"></xs:attribute>
 </xs:complexType>
 </xs:element>
 </xs:sequence>
 </xs:complexType>
 </xs:element>
 </xs:sequence>
 <xs:attribute name="version" type="xs:int"></xs:attribute>
 </xs:complexType>
 </xs:element>
 </xs:schema>