The StructureCustomClasses.xls workbook defines the acceptable list of additional interfaces that can be added to objects. The data is added to the definition of these objects within the catalog schema. The workbook is delivered to the [Product Folder]\ShipCatalogData\Bulkload\DataFiles\ProjectDBFiles folder and is bulkloaded into the Catalog.
Custom Interfaces Worksheet
The CustomInterfaces sheet allows you to load a custom schema into the metadata of a catalog. This sheet defines the customized user interfaces and attributes (properties) for the part classes in the workbook.
When you bulk load a workbook, the software looks at each attribute on the class sheets and uses the Custom Interfaces sheet to decode the information. When an object uses a single attribute from an interface, the object also inherits all the attributes for that interface, regardless of whether the object uses the other attributes.
The outcome of bulk loading a Custom Interfaces sheet is the GUIDs sheet. The Bulkload utility creates the GUIDs sheet if you are bulk loading a workbook for the first time. Successive attempts to load the workbook attempt to reuse the GUIDs available on the GUIDs sheet.
An interface is a collection of attributes. A complete interface definition includes one or more attribute names with associated data type, unit type, and optional symbol parameter. An attribute with the same name can exist on more than one interface. On a part class sheet, you can scope the attributes based on their interfaces and symbol parameters. The scoping syntax is Interface::UserAttribute<Symbol Parameter>. For example, for a part class Vessel, the attribute Length is a property of an Interface IJUAVessel and the symbol parameter is H. In a part class Tank, the user attribute Length is a property of an Interface IJUATank and the symbol parameter is L. Then, the complete definition of the attribute in each part class is IJUAVessel::Length<H> and IJUATank::Length<L>.
If the attribute name is unique (that is, the attribute is not shared with another interface), you only need to type the attribute name and symbol parameter on the class sheet. In the preceding example, you can type Length<H> in this case. If the attribute name is unique and the default symbol parameter is the same on the Custom Interfaces sheet and on the class sheet, then you only need to type the attribute name on the class sheet: Length.
When you are adding a new part class that uses custom interfaces, regardless of whether the custom interfaces already reside in the Catalog database, you must still include the definition of the custom interfaces for the part class on the Custom Interfaces sheet. This Custom Interfaces sheet must reside in the same workbook as the part class that you are bulk loading.
You can use the Systems.xls workbook available on the customer support web site as a sample when you want to add customized attributes to certain objects. An example is adding attributes to pipe runs.
Specifies the custom interfaces, which are property sets. Start each interface name with IJUA. For example, if you want to define a new interface called CentrifugalPump, name the interface IJUACentrifugalPump. You should not change system-defined interfaces, which start with IJ.
Specifies the category for the custom interface. System-defined interfaces (starting with IJ) are in the Standard category by default.
The purpose of the category is to filter the grid on the Properties dialog box and to assist in reporting queries. When you are working on a part in the model, you can view the categories on the General tab of the Properties dialog box. All attributes in IJ interfaces display in the Standard category, while the attributes in IJUA interfaces display in their specified categories.
Specifies the attributes available for the part classes in the workbook. The names cannot have any blanks or special characters.
The attribute name is the UserAttribute component in the syntax Interface::UserAttribute<Symbol Parameter>. If the attribute name is unique throughout the catalog's interfaces, then you do not need to specify the Interface:: portion of the syntax statement.
Provides an easily readable name for the attribute. This name is optional and can include blank spaces. When you view a Properties dialog box or build a report query for an object, you see attribute user names, not attribute names.
Attribute user names do not need to be unique within the model.
Specifies the data type for each attribute. For example, many attributes are associated with the Double data type, which is used for real numbers. Available data types include Bit, Char, Double, Short, Long, Number, Single, and String. Double and Char are the two most often used.
Specifies the unit type, which is defined in the software. If there is no unit type, you can leave this cell blank or type 0. The unit types are defined in the Core component of the software. For more information, see Appendix: Units of Measure in the Reference Data Guide.
Specifies the units for the attribute. If there is no primary unit, you can leave this cell blank or type 0. Like unit types, primary units are defined in the Core component of the software. For more information, see Appendix: Units of Measure in the Reference Data Guide.
Primary units are the default units for a particular attribute if you do not specify units in the software. For example, if you only type a number for the pump flow rate on a class sheet without specifying units, the units are whatever you specified in the PrimaryUnits column for the flow rate attribute.
Specifies a codelist for the attribute. If you want the attribute to use a codelist, type the name of the codelist in this column; otherwise, leave the column blank. The names of the codelists are listed in the "Head" line on each sheet in the AllCodeLists.xls workbook. On part sheets that use the codelisted attribute, specify the numerical value from the codelist.
For example, if you want to use a codelist for the end preparation attribute, type EndPreparation in the CodeList column on the Custom Interfaces sheet. Then, on a part sheet that uses this attribute, type 301 to indicate male ends, welded with beveled end.
Do not type a 0 in the Codelist column. Leave it blank if there is not a codelist for the attribute.
Specifies the namespace of the codelist.
The CodeListTableNamespace column is presented as a sample on the Custom Interfaces sheet in the StructHandrails.xls workbook. One namespace is called REFDAT. For user-defined codelist tables, the namespace is UDP. For more information, see Select List (Codelist) Namespaces.
Specifies whether the attribute is listed on the Properties dialog box for the part class. You can type TRUE or 1, or FALSE or 0 in this column. This column exists because you might want to prevent some attributes from being visible on the Properties dialog boxes.
Specifies if the attribute is read-only on the interface. Attributes that are not read-only are generally occurrence attributes, which are marked with oa: beside their names on the part class sheets in the class definition section. For more information about occurrence attributes, see Controlling Access to Attributes in the Reference Data Guide.
Specifies a default symbol input parameter that the interface uses to drive the symbol. The symbol parameter names cannot have any blanks or special characters.
The symbol parameter name is the <Symbol Parameter> component in the syntax Interface::UserAttribute<Symbol Parameter>. If the symbol parameter name on the Custom Interfaces sheet is the same as the symbol input variable in the Visual Basic project, the Solid Edge assembly file, or the Symbol 2D cross section, then you do not need to specify the symbol parameter portion of the syntax on the class sheet.
If an attribute is used for naming rules only and is not used in a symbol, then you can leave the SymbolParameter column blank.
Custom Class Interface List Worksheet
The CustomClassInterfaceList sheet maps interfaces to classes. Each interface and class must already exist in the Catalog schema database. During processing, the Bulkload utility relates the custom-defined virtual interfaces to the specified non-virtual, system classes. The utility does not recognize any of the bulkload update modes and does not create new interfaces or classes while scanning this sheet.
Lists the name of the non-virtual class.
Lists the name of the custom virtual interface.