Cadit Update.ini
  • 31 Jan 2024
  • 52 Minutes to read
  • Contributors
  • Dark
    Light
  • PDF

Cadit Update.ini

  • Dark
    Light
  • PDF

Article Summary

About

Cadit Update.ini is the setup file for user-defined rules for Cadit Update properties command.

The file can contain one or more rules for what properties to update. An update rule can consist of one or more sub-rules. The rules must be numbered continuously (UpdateRule1, UpdateRule2, UpdateRule3 etc). If the next rule number is missing, any subsequent rules will not be used.

Cadit Update can update both parts and assemblies.

The file is located in the Settings subfolder under the Common Configuration folder or the Local Configuration folder. The program first looks for the file in the Common Configuration folder, then in the Local Configuration folder.

Section
Key
ValueDescription
[ResultPropertyName]Property sets for result property. The first keys are not numbered. The keys are numbered up for additional properties.
key=property set.property nameDetermines the name of the result property for ResultPropertyName (key).
By adding a number to the key name more properties can have the same result value.
By leaving value empty ResultPropertyName (key) is ignored.
If the property set part of the value is omitted, it is Custom Properties.
Example keys
PartDescription=Design Tracking Properties.Part NumberPartDescription is placed in the Part Number property.
PartDescription1=ct_descriptionPartDescription is also placed in the Custom Property ct_description.
StockDescription=Design Tracking Properties.Stock NumberStockDescription is placed in the Stock Number property.
CutLength=Custom Properties.Cut LengthCutLength is placed in the Custom Property Cut Length.
[Description With CutInfo]Property sets for the (DescriptionWithCutInfo:) function and for the (ct_description:) function if the ct_cut_info property has a value. The function first search for text in Property1, if not found it searches the next number.
Property1=Design Tracking Properties.Stock Number(DescriptionWithCutInfo:) first searches in Property1, which in this example is the Stock Number property.
Property2=Design Tracking Properties. DescriptionIf Property1 has no value, the (DescriptionWithCutInfo:) then searches in Property2, which in this example is the Description property.
Add more Property number keys to search more properties.
[Description Without CutInfo]Property sets for the (DescriptionWithoutCutInfo:) function and for the (ct_description:) function if the ct_cut_info property has no value. The function first search for text in Property1, if not found it searches the next number.
Property1=Design Tracking Properties.Stock Number(DescriptionWithoutCutInfo:) first searches in Property1, which in this example is the Stock Number property.
Property2=Design Tracking Properties. Part NumberIf Property1 has no value, the (DescriptionWithoutCutInfo:) then searches in Property2, which in this example is the Part Number property.
Property3=Design Tracking Properties. DescriptionIf not found, the (DescriptionWithoutCutInfo:) then searches in Property3, which in this example is the Description property.
Add more Property number keys to search more properties.
[MeasuringMethods]Measuring method settings
Method2=PL |DPL |PLATE |DPLATE |FL |FPEL |SQB |TBAR |INP |IPE |UAP |UNP |UPE |USP |HUpdate codes to measure by method 2.
Default: PL |DPL |PLATE |DPLATE |FL |FPEL |SQB |TBAR |INP |IPE |UAP |UNP |UPE |USP |H
Method3=L |RB |HRBUpdate codes to measure by method 3.
Default: L |RB |HRB
[MeasuringOptions]Measuring options
OrthoCheckCodes=PL| DPL|PLATE| DPLATEThe component is measured along the longest edge, unless two edges with a certain minimum length are orthogonal. Rotate and measure components with these codes, according to the longest orthogonal edges, if edge length larger than OrthoCheckFactor.
Default: PL |DPL |PLATE |DPLATE
OrthoCheckFactor=0.05The component is measured along the longest edge, unless two edges with a certain minimum length are orthogonal.
Minimum length of edges, in relation to the longest egde, to be considered for orthocheck.
Default: 0.05
OriginCheckFactor=0.4The component is measured along the longest edge, unless one of the edges, with a certain minimum length, are parallel to one of the origin axes.
Minimum length of edges, in relation to the longest egde, to be considered for orthocheck.
Default: 0.4
MaxFaces200Maximum number of faces for advanced measuring methods. If more faces the component is measured according to the origin axes only.
Default: 200
[UpdateRule1]First main update rule.
Add numbers to add more rules. The rules must be numbered continuously (UpdateRule1, UpdateRule2, UpdateRule3 etc). If the next rule number is missing, any subsequent rules will not be used.
Description=Measure and describe coded components
Description of the update rule. Shown in the Cadit Update dialog.
Comments=Measure plates and profiles and update description properties according to the code in the ct_cut_info property.Comments to the update rule. Shown in the Cadit Update dialog when clicking the rule.
DefaultChecked=1If DefaultChecked = 1, the rule is on by default.
InUse=1If InUse = 0, the rule is omitted from the list and not used.
Mandatory=1If Mandatory = 1, the rule is always on and it is not able to turn it off.
HideForIPT=0If HideForIPT = 1, the rule is hidden for part files.
MasterLODOnly=0If MasterLODOnly = 1, the rule is used only for the Master Level of Detail.
[UpdateRule1.1]First sub rule to rule 1.
Add numbers to add more rules. The sub rules must be numbered continuously (UpdateRule1.1, UpdateRule1.2, UpdateRule1.3 etc). If the next rule number is missing, any subsequent rules will not be used.
Cadit Update first read sub rules in numeric order.
IfProperty=Property nameIf IfProperty is empty, all components will be modified with SetPropertyN/SetValueN rules.
If IfProperty is set, only components with IfProperty like IfValue will be modified. Wildcards * and ? can be used.
Example 1: IfProperty = ct_cut_info
Example 2: IfProperty =
Example 3: IfProperty = ResultPropertyName(OriginalPartNumber)
IfValue=Property valueIf IfValue is set and is (Exist), only components were IfProperty exists will be modified.
If IfValue is not set, only components where IfProperty is not set or is empty will be modified.
Example 1: IfValue =
Example 2: IfValue = PL
Example 3: IfValue = (Exist)
SetProperty=
SetProperty1
Property nameProperty names can be set on the form propertyset.propertyname. If propertyset is omitted, custom property is assumed.
Use Cadit Property Editor setup to determine Property set names and Property names.
If a key is numbered, the SetValue with the corresponding number is used

Property name examples:
Example valuesResult property
ResultPropertyName(PartDescription)Value of [ResulPropertyName], PartDescription.
All other PartDescription with number are also set.
PartDescription1, PartDescription2, and so on.
Design Tracking Properties.Stock NumberStock Number property on iProperties Project and Status tab
ct_descriptionCustom property ct_description
User Defined Properties.ct_colorCustom property ct_color
Summary Information.TitleTitle property on iProperties Summary tab
Document Summary Information.CompanyCompany property on iProperties Summary tab
Design Tracking Properties.DescriptionDescription property on iProperties Project tab
Property name examples with valid property set name abbreviations:
ct_colorCustom property ct_color
Summary.TitleTitle property on iProperties Summary tab
DocumentSummary.CompanyCompany property on iProperties Summary tab
DesignTracking.DescriptionDescription property on iProperties Project tab
SetValue=
SetValue1=
Property valueProperty values can be set as a text or by using functions
If a key is numbered, the property value is for the SetProperty with the corresponding number.
Type=
Type1=
Property typeProperty type
If a key is numbered, the property type is for the SetProperty with the corresponding number.
Rule=
Rule1=
iLogic rule filenameName and path of iLogic rule file.
If the keys are numbered, multiple iLogic rules can be executed.
If the path is omitted the iLogic rule file should be placed in the Settings folder under the Common folder.
UpdateIAMUpdate assemblies if set to 1.
UptadeIPTUpdate part files if set to 1.
Goto=Sub rule number or exitCadit Update first read sub rules in numeric order. If the sub rule has been used the Goto setting will force Cadit Update to jump to the sub rule number given.
If set to exit, Cadit Update will jump to the next main rule.

The Description text will appear as a selectable rule in the Cadit Update dialog box.
Result properties section
To change where Cadit Update place the results, change the settings under the [ResultPropertyName] section.

In the default Cadit Update.ini, if the ResultPropertyName(PartDescription) function is used by the SetProperty key in a UpdateRule, the Part Number property gets the value from the SetValue key of the UpdateRule. To get the result in the Description property instead, change the value of PartDescription to Design Tracking Properties.Description. To get the result both places add a new key PartDescription1 with the value Design Tracking Properties.Description.

Section key can be PartDescription, StockDescription or any other key used by the ResultPropertyName(key) function.

The value is the property name. It consists of the property set name and the property name divided by a dot (.) for example Design Tracking Properties.Part Number.
For Custom Properties the property set name can be omitted. Example ct_description.

By adding a number to the key name more properties gets the same result value.
Example:

ct-lenx = Custom Properties.ct_lenx
ct_lenx1 = Custom Properties.CQTools_X
ct_lenx2 = Custom Properties.Naviate_Range_X

In this example all three custom properties gets the same result value if ResultPropertyName(ct-lenx) are called.

If a property that Cadit Update makes is not wanted, remove the key by adding a semicolon or leave the value blank.
Example:

;Sweeplength = Custom Properties.Sweeplength
or
Sweeplength =

In both these examples no properties is set by a call to ResutProperties(Sweeplength)

Update rules sections

IfProperty

If IfProperty is set, only parts with IfProperty=IfValue will be modified. I.e. the value of the property set in IfProperty will be compared to the value of IfValue. If the value equals to the value of IfValue, then the property in SetProperty will be set to the value of SetValue.

If IfProperty is empty, all parts will be modified.

IfValue

If IfValue is set and is (Exist), only parts where IfProperty exists will be modified.

SetProperty

Property names can be set on the form propertyset.propertyname. If propertyset is omitted, custom property is assumed.

Use Cadit Property Editor Setup to determine Property set names and Property names.

Property name examples:

User Defined Properties.ct_color
Custom property ct_color.

Summary Information.Title
Title property on iProperties Summary tab.

Document Summary Information.Company
Company property on iProperties Summary tab.

Design Tracking Properties.Description
Description property on iProperties Project tab.

Property name examples with valid property set name abbreviations:

ct_colorCustom property ct_color
Summary.TitleTitle property on iProperties Summary tab
DocumentSummary.CompanyCompany property on iProperties Summary tab
DesignTracking.DescriptionDescription property on iProperties Project tab

SetValue
The value of the SetValue key can contain special text as described in this table:

Function / Special textResult / Replaced withUnit
ResultPropertyName(name)The Property name from the value of the key name and name1, name2 and so on
(DescriptionWithCutInfo:)Value from first property with value under [Description With CutInfo]
(DescriptionWithoutCutInfo:)Value from first property with value under [Description Without CutInfo]
(ct_description:)Value from (DescriptionWithoutCutInfo:), if ct_cut_info is omittet or has no value.
If the value of ct_cut_info is X, Y or Z, the result is the value from (DescriptionWithCutInfo:) + " L= " + measured length in the selected direction. Result in mm
If the value of ct_cut_info is XY, YX, XZ, ZX, YZ or ZY, the result is the value from (DescriptionWithCutInfo:) + " x " + measured length + " x " + measured width (measurement depending on value). Result in mm
If the first letter of ct_cut_info is D followed by XY, YX, XZ, ZX, YZ or ZY and the distances are equal, the result is value from (DescriptionWithCutInfo:) + " ø" + measured diameter in the selected direction. Result in mm
If the two distances not are equal, the result is the same as for ct_cut_info XY, YX, XZ, ZX, YZ or ZY."
If the value of ct_cut_info is PXY, PYX, PXZ, PZX, PYZ or PZY, the result is "PL " + measured thickness + " x " + measured length + " x " + measured width (measurement depending on value). Result in mm
If the value of ct_cut_info is TXY, TYX, TXZ, TZX, TYZ or TZY, the result is  the value from (DescriptionWithCutInfo:) + " " + thickness from the parameter ct_tykkelse + " x " + measured length + " x " + measured width (measurement depending on value). Result in mm
If none of the above the value from (DescriptionWithCutInfo:) is used.
If length in mm
(pv:parameter name)Parameter value (numeric value excluding units) of parameter name.
Length values in mm, angle values in degrees, mass in kg, area in m2 and volume in m3
mm, deg, kg, m2, m3 or default Inventor parameter unit"
(pp:property name)Property value of property name
(fc:feature name)Feature color name of feature name
(ExtL:)Extent Length.
Largest of extent in X and Y direction for Sheet Metal parts.
Largest of extent in X, Y and Z directions for standard parts.
mm
(ExtT:)Extent Thickness
Thickness for Sheet Metal parts.
Shortest of extent in X, Y and Z directions for standard parts.
mm
(ExtTZ:)Extent Thickness.
Extent in Z direction for Sheet Metal parts.
Shortest of extent in X, Y and Z directions for standard parts.
mm
(ExtW:)Extent Width.
Shortest of extent in X and Y direction for Sheet Metal parts.
Midmost of extent in X, Y and Z directions for standard parts.
mm
(ExtX:)Sheet metal extents in x directionmm
(ExtY:)Sheet metal extents in y directionmm
(ExtZ:)Sheet metal extents in z directionmm
(Len1:)Length in first direction of ct_cut_infomm
(Len2:)Length in second direction of ct_cut_infomm
(Len3:)Length in third direction (thickness) for PXY, PXZ, PYZmm
(LenX:)Bounding box extents x valuemm
(LenY:)Bounding box extents y valuemm
(LenZ:)Bounding box extents z valuemm
(MaxExt:)Largest of (ExtX:) and (ExtY:)mm
(MaxLen:)Largest of (Len1:) and (Len2:)mm
(MinExt:)Smallest of (ExtX:) and (ExtY:)mm
(MinLen:)Smallest of (Len1:) and (Len2:)mm
(RDia:)Diameter of cylindrical part.
,If the component has cylindrical surfaces, the diameter comes from the surface with the largest radius.
Else, if two of the values of bounding box extents are equal, they are assumed to be the diameter. If none of the values are equal it returns the text (DIAMETER COULD NOT BE DETERMINED)
mm
(RLen:)Length of cylindrical part.
If the component has cylindrical surfaces, the length is measured along the axis of the surface with the largest radius.
Else, if two of the values of bounding box extents are equal, the third value are assumed to be the length. If none of the values are equal it returns the text (LENGTH COULD NOT BE DETERMINED).
mm
(Sweeplength:)Sweep length. Sum of the length of all sweep features.mm
(MaxArea:)(Len1:) x (Len2:)mm2
(MaxArea_m2:)(Len1:) x (Len2:)m2
(NetArea:)Volume divided by ExtTmm2
(NetArea_m2:)Volume divided by ExtTm2
(SheetMetalArea_m2:)Sheet Metal Area,m2
(VolDivByPP:property name)Volume divided by Property value of property namemm2
(VolDivByPP_m2:property name)Volume divided by Property value of property namem2
(VolDivByPV:parameter name)Volume divided by Parameter value (numeric value excluding units) of parameter namemm2
(VolDivByPV_m2:parameter name)Volume divided by Parameter value (numeric value excluding units) of parameter namem2
(Wallarea_m2:)Volume divided with the value of the user parameter ct_wt.m2
(Volume:)Volumemm3
(Volume_m3:)Volumem3
(Material:)Material from component material.
(Weight:)Weight.
If no format value is given the default formatting is like this: no decimal for weights from 10 kg and above, 1 decimal for weights from 1 kg up to 10 kg, 3 decimals for weights below 1 kg
kg
(Weight_g:)Weight in grams.
If no format value is given the default formatting is like this: no decimal for weights from 10 g and above, 1 decimal for weights from 1 g up to 10 g, 3 decimals for weights below 1 g
g
(referencedfiles:)List of assembly components with weight and BOMStructure Referenced.
(CCOGX:)Local component center of gravity x value. Result in mm
(CCOGY:)Local component center of gravity y value. Result in mm
(CCOGZ:)Local component center of gravity z value. Result in mm
(ItemNo:)Item No in current assembly
(Qty:)Quantity of component in current assembly
(QtyTot:)(qty:) x (pp:ct_qtyunits)
(QtyUnits:)1 if custom property ct_qtyunits is not set, otherwise value of custom property ct_qtyunits
(FileName:)File name with extension of part or assembly
(FullFileName:)Fully qualified file name of part or assembly
(Name:)File name without extension of part or assembly
(Path:)Path for location of part or assembly
(OriginX:)Component origin x value in current assembly.mm
(OriginY:)Component origin y value in current assembly.mm
(OriginZ:)Component origin z value in current assembly.mm
(OriginElev:property name)Component origin elevation. Distance from property value of given property name.mm
(COGX:)Component center of gravity x value in current assembly.mm
(COGY:)Component center of gravity y value in current assembly.mm
(COGZ:)Component center of gravity z value in current assembly.mm
(COGElev:property name)Component center of gravity elevation. Distance from property value of given property name.mm
(SheetMetalStyle:)Sheet Metal Style name for sheet metal parts.
(Incr:part property, assembly property, increment, min value, max value)Increment number value on part in assembly. Property value is set in the given part property and assembly property. Value is counting with the value of increment, starting from the value of min value and conting to the value of max value.
Example:(Incr:Weld No,LastWeldFillet,1,1000,1999)

Number values can be formatted with n digits after decimal symbol by adding ,n after the code, for example (lenx,1:) , (pp,0:G_L) or (weight,1:).
Use negative decimal value for zero suppression, for example (lenx,-1:).

See also Update properties , Open Common folder, Open user folder or Open local folder

Example: Cadit Update.ini
Any line starting with a semicolon (;) will be ignored.

; Setup file for user-defined rules for Update Cadit Properties command.
; The file can reside in CaditInventor Common or Local Configuration folder
;
; CaditInventor Local Configuration folder: 
;   The settings folder where the setup program place files.
;   Changes here may be overwritten if the program is reinstalled.
;
; CaditInventor Common Configuration folder: 
;   CaditInventor folder beside Inventor Template folder. 
;   Copy files from Local Configuration folder to this folder if custom settings are required.
;
; The program first looks for the file in the Common Configuration folder, then in the Local Configuration folder.
;
; To change the result property:
; Copy this file to the Settings folder in the Common folder 
; Change the value of the PartDescription key in the [ResultPropertyName] section (line 117 in this file)
;
; (DescriptionWithCutInfo:)       Value from first property with value under [Description With CutInfo]  
; (DescriptionWithoutCutInfo:)    Value from first property with value under [Description Without CutInfo]   
;
; (ct_description:)               Value from (DescriptionWithoutCutInfo:), if ct_cut_info is omittet or has no value.
;                                 If the value of ct_cut_info is X, Y or Z, the result is the value from (DescriptionWithCutInfo:) + " L=" + measured length in the selected direction. Result in mm
;                                 If the value of ct_cut_info is XY, YX, XZ, ZX, YZ or ZY, the result is the value from (DescriptionWithCutInfo:) + " x " + measured length + " x " + measured width (measurement depending on value). Result in mm
;                                 If the first letter of ct_cut_info is D followed by XY, YX, XZ, ZX, YZ or ZY and the distances are equal, the result is value from (DescriptionWithCutInfo:) + " Ø" + measured diameter in the selected direction. Result in mm 
;                                 If the two distances not are equal, the result is the same as for ct_cut_info XY, YX, XZ, ZX, YZ or ZY.
;                                 If the value of ct_cut_info is PXY, PYX, PXZ, PZX, PYZ or PZY, the result is "PL " + measured thickness + " x " + measured length + " x " + measured width (measurement depending on value). Result in mm
;                                 If the value of ct_cut_info is TXY, TYX, TXZ, TZX, TYZ or TZY, the result is  the value from (DescriptionWithCutInfo:) + " " + thickness from the parameter ct_tykkelse + " x " + measured length + " x " + measured width (measurement depending on value). Result in mm
;                                 If none of the above the value from (DescriptionWithCutInfo:) is used.
;
; (fc:feature name)               Feature color name of feature name
; (pp:property name)              Property value of property name
; (pv:parameter name)             Parameter value (numeric value excluding units) of parameter name
;
; (ExtL:)                         Extent Length. Largest of extent in X and Y direction for Sheet Metal parts. Largest of extent in X, Y and Z directions for standard parts. Result in mm
; (ExtT:)                         Extent Thickness. Thickness for Sheet Metal parts. Shortest of extent in X, Y and Z directions for standard parts. Result in mm 
; (ExtTZ:)                        Extent Thickness. Extent in Z direction for Sheet Metal parts. Shortest of extent in X, Y and Z directions for standard parts. Result in mm
; (ExtW:)                         Extent Width. Shortest of extent in X and Y direction for Sheet Metal parts. Midmost of extent in X, Y and Z directions for standard parts. Result in mm
; (ExtX:)                         Sheet metal extents in x direction, result in mm
; (ExtY:)                         Sheet metal extents in y direction, result in mm
; (ExtZ:)                         Sheet metal extents in z direction, result in mm
; (Len1:)                         Length in first direction of ct_cut_info, result in mm
; (Len2:)                         Length in second direction of ct_cut_info, result in mm
; (Len3:)                         Length in third direction (thickness) for PXY, PXZ, PYZ, result in mm
; (LenX:)                         Bounding box extents x value, result in mm
; (LenY:)                         Bounding box extents y value, result in mm
; (LenZ:)                         Bounding box extents z value, result in mm
; (MaxExt:)                       Largest of (ExtX:) and (ExtY:), result in mm
; (MaxLen:)                       Largest of (Len1:) and (Len2:), result in mm
; (MinExt:)                       Smallest of (ExtX:) and (ExtY:), result in mm
; (MinLen:)                       Smallest of (Len1:) and (Len2:), result in mm 
; (RDia:)                         Diameter of cylindrical part. If two of the values of bounding box extents are equal, they are assumed to be the diameter.
;                                 If none of the values are equal it returns the text (DIAMETER COULD NOT BE DETERMINED). 
;                                 Set result to diameter and length along axis vector if largest face is cylindrical and parallel to x-, y- or z-axis. Result in mm
; (RLen:)                         Length of cylindrical part. If two of the values of bounding box extents are equal, the third value are assumed to be the length. 
;                                 If none of the values are equal it returns the text (LENGTH COULD NOT BE DETERMINED). Result in mm
; (Sweeplength:)                  Sweep length. Sum of the length of all sweep features. Result in mm  
;
; (MaxArea:)                      (Len1:) x (Len2:), result in mm2
; (MaxArea_m2:)                   (Len1:) x (Len2:), result in m2
; (NetArea:)                      Volume divided by ExtT, result in mm2
; (NetArea_m2:)                   Volume divided by ExtT, result in m2
; (SheetMetalArea_m2:)            Sheet Metal Area, result in m2
; (VolDivByPP:property name)      Volume divided by Property value of property name, result in mm2
; (VolDivByPP_m2:property name)   Volume divided by Property value of property name, result in m2
; (VolDivByPV:parameter name)     Volume divided by Parameter value (numeric value excluding units) of parameter name, result in mm2
; (VolDivByPV_m2:parameter name)  Volume divided by Parameter value (numeric value excluding units) of parameter name, result in m2
; (Wallarea_m2:)                  Volume divided with the value of the user parameter ct_wt. m2
;
; (Volume:)                       Volume in mm3
; (Volume_m3:)                    Volume in m3
;
; (Material:)                     Material from component material.
; (Weight:)                       Weight. If no format value is given the default formatting is like this: no decimal for weights from 10 kg and above, 1 decimal for weights from 1 kg up to 10 kg, 3 decimals for weights below 1 kg, result in kg
; (Weight_g:)                       Weight in grams. If no format value is given the default formatting is like this: no decimal for weights from 10 g and above, 1 decimal for weights from 1 g up to 10 g, 3 decimals for weights below 1 g, result in g
; (referencedfiles:)              List of assembly components with weight and BOMStructure Referenced.
; (CCOGX:)                        Local component center of gravity x value. Result in mm
; (CCOGY:)                        Local component center of gravity y value. Result in mm
; (CCOGZ:)                        Local component center of gravity z value. Result in mm
;
; (ItemNo:)                       Item No in current assembly  
; (Qty:)                          Quantity of component in current assembly
; (QtyTot:)                       (qty:) x (pp:ct_qtyunits)
; (QtyUnits:)                     1 if custom property ct_qtyunits is not set, otherwise value of custom property ct_qtyunits
;
; (FileName:)                     File name with extension of part or assembly   
; (FullFileName:)                 Fully qualified file name of part or assembly  
; (Name:)                         File name without extension of part or assembly  
; (Path:)                         Path for location of part or assembly  
;
; (OriginX:)                      Component origin x value in current assembly. Result in mm
; (OriginY:)                      Component origin y value in current assembly. Result in mm
; (OriginZ:)                      Component origin z value in current assembly. Result in mm
; (OriginElev:property name)      Component origin elevation. Distance from property value of given property name. Result in mm   
; (COGX:)                         Component center of gravity x value in current assembly. Result in mm
; (COGY:)                         Component center of gravity y value in current assembly. Result in mm
; (COGZ:)                         Component center of gravity z value in current assembly. Result in mm
; (COGElev:property name)         Component center of gravity elevation. Distance from property value of given property name. Result in mm   
;
; (SheetMetalStyle:)              Sheet Metal Style name for sheet metal parts.  
;
; (Incr:part property, assembly property, increment, min value, max value) e.g. (Incr:Weld No,LastWeldFillet,1,1000,1999)
;
; Number values can be formatted with n digits after decimal symbol by adding ,n after the code, for example (lenx,1:) , (pp,0:G_L) or (weight,1:). 
; Use negative decimal value for zero suppression, for example (lenx,-1:). 
;
;
; If IfProperty is empty, all components will be modified with SetPropertyN/SetValueN rules.
; If IfProperty is set, only components with IfProperty like IfValue will be modified. Wildcards * and ? can be used.
; If IfValue is set and is (Exist), only components were IfProperty exists will be modified.
; If IfValue is not set, only components where IfProperty is not set or is empty will be modified. 
; 
; Property names can be set on the form propertyset.propertyname. If propertyset is omitted, custom property is assumed.
; Use Cadit Property Editor setup to determine Property set names and Property names.
; Property name examples:
;   User Defined Properties.ct_color (Custom property ct_color)
;   Summary Information.Title (Title property on iProperties Summary tab)
;   Document Summary Information.Company (Company property on iProperties Summary tab)
;   Design Tracking Properties.Description (Description property on iProperties Project tab)
; Property name examples with valid property set name abbreviations:
;   ct_color (Custom property ct_color)
;   Summary.Title (Title property on iProperties Summary tab)
;   DocumentSummary.Company (Company property on iProperties Summary tab)
;   DesignTracking.Description (Description property on iProperties Project tab)
 
; Result properties
[ResultPropertyName]
PartDescription = ct_description
;PartDescription1 = Design Tracking Properties.Part Number
;PartDescription2 = Design Tracking Properties.Description
 
StockDescription = Design Tracking Properties.Stock Number
 
CutLength = Custom Properties.Cut Length
;CutLength1 = Custom Properties.ct_kappelengde
 
CutWidth = Custom Properties.Cut Width
;CutWidth1 = Custom Properties.ct_kappebredde
 
ExternalDimensions = Custom Properties.Outer Dimensions
;ExternalDimensions1 = Custom Properties.ct_outer_dimensions
 
ct_lenx = Custom Properties.ct_lenx
;ct_lenx1 = Custom Properties.CQTools_X
;ct_lenx2 = Custom Properties.Naviate_Range_X
ct_leny = Custom Properties.ct_leny
;ct_leny1 = Custom Properties.CQTools_Y
;ct_leny2 = Custom Properties.Naviate_Range_Y
ct_lenz = Custom Properties.ct_lenz
;ct_lenz1 = Custom Properties.CQTools_Z
;ct_lenz2 = Custom Properties.Naviate_Range_Z
ct_lenmax = Custom Properties.ct_lenmax
ct_lenmid = Custom Properties.ct_lenmid
ct_lenmin = Custom Properties.ct_lenmin
 
ct_maxarea = Custom Properties.ct_maxarea
ct_netarea = Custom Properties.ct_netarea
 
ct_qty     = Custom Properties.ct_qty
ct_qtyunit = Custom Properties.ct_qtyunit
 
ct_weight = Custom Properties.ct_weight
ct_referencedfiles = Custom Properties.ct_referencedfiles
 
ct_density = Custom Properties.ct_density
 
ct_ccogx = Custom Properties.ct_ccogx
ct_ccogy = Custom Properties.ct_ccogy
ct_ccogz = Custom Properties.ct_ccogz
 
 
OriginalPartNumber = Original Part Number
OriginalStockNumber = Original Stock Number
OriginalDescription = Original Description
 
;Sweeplength = Custom Properties.Sweeplength
;Sweeplength1 = Custom Properties.Naviate_SweepLength
 
PlateThickness = Custom Properties.PlateThickness
 
; ct_description for components with ct_cut_info
[Description With CutInfo]
Property1=Design Tracking Properties.Stock Number
Property2=Summary Information.Title
Property3=Design Tracking Properties.Description
 
; ct_description for components without ct_cut_info
[Description Without CutInfo]
Property1=Design Tracking Properties.Stock Number
Property2=Summary Information.Title
Property3=Design Tracking Properties.Description
 
[MeasuringMethods]
Method2=PL|DPL|PLATE|DPLATE|FL|FPEL|SQB|TBAR|INP|IPE|UAP|UNP|UPE|USP|H
Method3=L|RB|HRB
 
[MeasuringOptions]
OrthoCheckCodes=PL|DPL|PLATE|DPLATE
OrthoCheckFactor=0.05
OriginCheckFactor=0.4
MaxFaces=200
 
; definition of update rules
[UpdateRule1] ; Measure and describe coded components (ct_cut_info)
Description = Measure and describe coded components 
Comments    = Measure plates and profiles and update description properties according to the code in the ct_cut_info property.
DefaultChecked = 1
InUse       = 1
Mandatory   = 1
 
[UpdateRule1.1]    ; hopp over alle uten ct_cut_info
IfProperty  = ct_cut_info
IfValue     =
Goto        = exit
 
[UpdateRule1.2]   ; ta vare på Part Number i ResultPropertyName(OriginalPartNumber)
IfProperty  = ResultPropertyName(OriginalPartNumber)
IfValue     = 
SetProperty = ResultPropertyName(OriginalPartNumber)
SetValue    = (pp: Design Tracking Properties.Part Number)
UpdateIAM   = 1
UpdateIPT   = 1
 
[UpdateRule1.3]   ; ta vare på Stock Number i Original Stock Number
IfProperty  = ResultPropertyName(OriginalStockNumber)
IfValue     = 
SetProperty = ResultPropertyName(OriginalStockNumber)
SetValue    = (pp: Design Tracking Properties.Stock Number)
UpdateIAM   = 1
UpdateIPT   = 1
 
[UpdateRule1.4]   ; ta vare på Description i Original Description
IfProperty  = ResultPropertyName(OriginalDescription)
IfValue     = 
SetProperty = ResultPropertyName(OriginalDescription)
SetValue    = (pp: Design Tracking Properties.Description)
UpdateIAM   = 1
UpdateIPT   = 1
 
[UpdateRule1.5]   ; exit if None
IfProperty  = ct_cut_info
IfValue     = None
;SetProperty = ResultPropertyName(CutLength)
;SetValue    = 
;Type        = Text
UpdateIAM   = 1
UpdateIPT   = 1
Goto        = 102
 
[UpdateRule1.6]   ; D for Description
IfProperty  = ct_cut_info
IfValue     = D
SetProperty = ResultPropertyName(PartDescription)
;SetValue    = =<Description>
SetValue    = (pp: Design Tracking Properties.Description) (pp:ct_remarks)
Type        = Text
UpdateIAM   = 1
UpdateIPT   = 1
Goto        = 102
 
[UpdateRule1.7]   ; PN for Part Number
IfProperty  = ct_cut_info
IfValue     = PN
SetProperty = ResultPropertyName(PartDescription)
SetValue    = (pp: Design Tracking Properties.Part Number) (pp:ct_remarks)
Type        = Text
UpdateIAM   = 1
UpdateIPT   = 1
Goto        = 102
 
[UpdateRule1.8]   ; SN for Stock Number
IfProperty  = ct_cut_info
IfValue     = SN
SetProperty = ResultPropertyName(PartDescription)
;SetValue    = =<Stock Number>
SetValue    = (pp: Design Tracking Properties.Stock Number) (pp:ct_remarks)
Type        = Text
UpdateIAM   = 1
UpdateIPT   = 1
Goto        = 102
 
[UpdateRule1.9]   ; FN for Filename
IfProperty  = ct_cut_info
IfValue     = FN
SetProperty = ResultPropertyName(PartDescription)
SetValue    = (Name:)
Type        = Text
UpdateIAM   = 1
UpdateIPT   = 1
Goto        = 102
 
[UpdateRule1.10]   ; PL for plates
IfProperty  = ct_cut_info
IfValue     = PL
SetProperty = ResultPropertyName(PartDescription)
SetValue    = PL (ExtT,-1:) x (ExtL,0:) x (ExtW,0:) (pp:ct_remarks)
SetProperty1= ResultPropertyName(StockDescription)
SetValue1   = PL (ExtT,-1:)
SetProperty2= ResultPropertyName(CutLength)
SetValue2   = (len1,0:)
SetProperty3= ResultPropertyName(CutWidth)
SetValue3   = (len2,0:)
UpdateIAM   = 0
UpdateIPT   = 1
Goto        = 100
 
[UpdateRule1.11]   ; DPL for round plates
IfProperty  = ct_cut_info
IfValue     = DPL
SetProperty = ResultPropertyName(PartDescription)
SetValue    = PL (RLen,-1:) ø(RDia,0:) (pp:ct_remarks)
SetProperty1= ResultPropertyName(StockDescription)
SetValue1   = PL (RLen,-1:)
SetProperty2= ResultPropertyName(CutLength)
SetValue2   = (len1,0:)
SetProperty3= ResultPropertyName(CutWidth)
SetValue3   = (len2,0:)
SetProperty4= ResultPropertyName(ExternalDimensions)
SetValue4   = ø(RDia,0:)
Type4       = Text
UpdateIAM   = 0
UpdateIPT   = 1
Goto        = 103
 
[UpdateRule1.12]   ; PLATE for plates
IfProperty  = ct_cut_info
IfValue     = PLATE
SetProperty = ResultPropertyName(PartDescription)
SetValue    = Plate (ExtT,-1:) x (ExtL,0:) x (ExtW,0:) (pp:ct_remarks)
SetProperty1= ResultPropertyName(StockDescription)
SetValue1   = Plate (ExtT,-1:)
SetProperty2= ResultPropertyName(CutLength)
SetValue2   = (len1,0:)
SetProperty3= ResultPropertyName(CutWidth)
SetValue3   = (len2,0:)
;SetProperty4= ResultPropertyName(ExternalDimensions)
;SetValue4   = (ExtL,0:) x (ExtW,0:)
UpdateIAM   = 0
UpdateIPT   = 1
Goto        = 100
 
[UpdateRule1.13]    ; DPLATE for round plates
IfProperty  = ct_cut_info
IfValue     = DPLATE
SetProperty = ResultPropertyName(PartDescription)
SetValue    = Plate (RLen,-1:) ø(RDia,0:) (pp:ct_remarks)
SetProperty1= ResultPropertyName(StockDescription)
SetValue1   = Plate (RLen,-1:)
SetProperty2= ResultPropertyName(CutLength)
SetValue2   = (len1,0:)
SetProperty3= ResultPropertyName(CutWidth)
SetValue3   = (len2,0:)
SetProperty4= ResultPropertyName(ExternalDimensions)
SetValue4   = ø(RDia,0:)
Type4       = Text
UpdateIAM   = 0
UpdateIPT   = 1
Goto        = 103

[UpdateRule1.14]    ; L measures the longest length for profiles or sheet metal parts
IfProperty  = ct_cut_info

IfValue     = L

SetProperty = ResultPropertyName(PartDescription)
SetValue    = (DescriptionWithCutInfo:) L=(ExtL,0:) (pp:ct_remarks)
SetProperty1= ResultPropertyName(ProfileCutLength)
SetValue1   = (ExtL,0:)
SetProperty2= ResultPropertyName(ExternalDimensions)
SetValue2   = (ExtL,0:)
Type2       = Text
SetProperty3= ResultPropertyName(CutWidth)
SetValue3   = 
Type3       = Text
SetProperty4= ResultPropertyName(ct_qty)
SetValue4   = (ExtL,0:) mm
SetProperty5= ResultPropertyName(ct_qtyunit)
SetValue5   = mm
SetProperty6= ResultPropertyName(ct_maxarea)
SetValue6   = 
Type6       = Text
SetProperty7= ResultPropertyName(ct_netarea)
SetValue7   = 
Type7       = Text
UpdateIAM   = 0
UpdateIPT   = 1
Goto        = exit
 
[UpdateRule1.15]    ; LVDA calculates the length by dividing volume by area
IfProperty  = ct_cut_info
IfValue     = LVDA
SetProperty = ResultPropertyName(PartDescription)
SetValue    = (DescriptionWithCutInfo:) L=(VolDivByPP,0:ct_section_area) (pp:ct_remarks)
SetProperty1= ResultPropertyName(ProfileCutLength)
SetValue1   = (VolDivByPP,0:ct_section_area)
SetProperty2= ResultPropertyName(ExternalDimensions)
SetValue2   = (VolDivByPP,0:ct_section_area)
Type2       = Text
SetProperty3= ResultPropertyName(CutWidth)
SetValue3   = 
Type3       = Text
SetProperty4= ResultPropertyName(ct_qty)
SetValue4   = (VolDivByPP,0:ct_section_area) mm
SetProperty5= ResultPropertyName(ct_qtyunit)
SetValue5   = mm
SetProperty6= ResultPropertyName(ct_maxarea)
SetValue6   = 
Type6       = Text
SetProperty7= ResultPropertyName(ct_netarea)
SetValue7   = 
Type7       = Text
UpdateIAM   = 0
UpdateIPT   = 1
Goto        = exit

[UpdateRule1.16]    ; LSWL length from sweeplength
IfProperty  = ct_cut_info
IfValue     = LSWL
SetProperty = ResultPropertyName(PartDescription)
SetValue    = (DescriptionWithCutInfo:) L=(Sweeplength,0:) (pp:ct_remarks)
SetProperty1= ResultPropertyName(ProfileCutLength)
SetValue1   = (Sweeplength,0:)
SetProperty2= ResultPropertyName(ExternalDimensions)
SetValue2   = (Sweeplength,0:)
Type2       = Text
SetProperty3= ResultPropertyName(CutWidth)
SetValue3   = 
Type3       = Text
SetProperty4= ResultPropertyName(ct_qty)
SetValue4   = (Sweeplength,0:) mm
SetProperty5= ResultPropertyName(ct_qtyunit)
SetValue5   = mm
SetProperty6= ResultPropertyName(ct_maxarea)
SetValue6   = 
Type6       = Text
SetProperty7= ResultPropertyName(ct_netarea)
SetValue7   = 
Type7       = Text
SetProperty8= ResultPropertyName(Sweeplength)
SetValue8   = (Sweeplength,0:)
Type8       = Text
UpdateIAM   = 0
UpdateIPT   = 1
Goto        = exit
 
[UpdateRule1.17]    ; FL for flat bar (replaces FPEL)
IfProperty  = ct_cut_info
IfValue     = FL
SetProperty = ResultPropertyName(PartDescription)
SetValue    = FL (ExtW,0:)x(ExtTZ,0:) L=(ExtL,0:) (pp:ct_remarks)
SetProperty1= Design Tracking Properties.Stock Number
SetValue1   = FL (ExtW,0:)x(ExtTZ,0:)
SetProperty2= ResultPropertyName(ProfileCutLength)
SetValue2   = (ExtL,0:)
SetProperty3= ResultPropertyName(ExternalDimensions)
SetValue3   = (ExtL,0:)
Type3       = Text
SetProperty4= ResultPropertyName(CutWidth)
SetValue4   = 
Type4       = Text
SetProperty5= ResultPropertyName(ct_qty)
SetValue5   = (ExtL,0:) mm
SetProperty6= ResultPropertyName(ct_qtyunit)
SetValue6   = mm
SetProperty7= ResultPropertyName(ct_maxarea)
SetValue7   = 
Type7       = Text
SetProperty8= ResultPropertyName(ct_netarea)
SetValue8   = 
Type8       = Text
UpdateIAM   = 0
UpdateIPT   = 1
Goto        = exit
 
[UpdateRule1.18]    ; FPEL for sheet metal flat bar 
IfProperty  = ct_cut_info
IfValue     = FPEL
SetProperty = ResultPropertyName(PartDescription)
SetValue    = FL (ExtW,0:)x(ExtTZ,0:) L=(ExtL,0:) (pp:ct_remarks)
SetProperty1= Design Tracking Properties.Stock Number
SetValue1   = FL (ExtW,0:)x(ExtTZ,0:)
SetProperty2= ResultPropertyName(ProfileCutLength)
SetValue2   = (ExtL,0:)
SetProperty3= ResultPropertyName(ExternalDimensions)
SetValue3   = (ExtL,0:)
Type3       = Text
SetProperty4= ResultPropertyName(CutWidth)
SetValue4   = 
Type4       = Text
SetProperty5= ResultPropertyName(ct_qty)
SetValue5   = (ExtL,0:) mm
SetProperty6= ResultPropertyName(ct_qtyunit)
SetValue6   = mm
SetProperty7= ResultPropertyName(ct_maxarea)
SetValue7   = 
Type7       = Text
SetProperty8= ResultPropertyName(ct_netarea)
SetValue8   = 
Type8       = Text
UpdateIAM   = 0
UpdateIPT   = 1
Goto        = exit
 
[UpdateRule1.19]    ; RB for round bar
IfProperty  = ct_cut_info
IfValue     = R
SetProperty = ResultPropertyName(PartDescription)
SetValue    = Round Bar Ø(RDia,0:) L=(RLen,0:) (pp:ct_remarks)
SetProperty1= Design Tracking Properties.Stock Number
SetValue1   = Round Bar Ø(RDia,0:)
SetProperty2= ResultPropertyName(ProfileCutLength)
SetValue2   = (RLen,0:)
SetProperty3= ResultPropertyName(ExternalDimensions)
SetValue3   = (RLen,0:)
Type3       = Text
SetProperty4= ResultPropertyName(CutWidth)
SetValue4   = 
Type4       = Text
SetProperty5= ResultPropertyName(ct_qty)
SetValue5   = (RLen,0:) mm
SetProperty6= ResultPropertyName(ct_qtyunit)
SetValue6   = mm
SetProperty7= ResultPropertyName(ct_maxarea)
SetValue7   = 
Type7       = Text
SetProperty8= ResultPropertyName(ct_netarea)
SetValue8   = 
Type8       = Text
UpdateIAM   = 0
UpdateIPT   = 1
Goto        = exit
 
; eller kanskje vi skulle ha en felles kode BAR for SQB og FL med en egen funksjon som evaluerte
; om målene var like > SQB eller fantes i en tabell > FL om ikke PL

[UpdateRule1.20]    ; HRB for half round bar  
IfProperty  = ct_cut_info
IfValue     = HRB
SetProperty = ResultPropertyName(PartDescription)
SetValue    = Half Round Bar (ExtW,0:)x(ExtTZ,0:) L=(ExtL,0:) (pp:ct_remarks)
SetProperty1= ResultPropertyName(StockDescription)
SetValue1   = Half Round Bar (ExtW,0:)x(ExtTZ,0:)
SetProperty2= ResultPropertyName(ProfileCutLength)
SetValue2   = (ExtL,0:)
SetProperty3= ResultPropertyName(ExternalDimensions)
SetValue3   = (ExtL,0:)
Type3       = Text
SetProperty4= ResultPropertyName(CutWidth)
SetValue4   = 
Type4       = Text
SetProperty5= ResultPropertyName(ct_qty)
SetValue5   = (ExtL,0:) mm
SetProperty6= ResultPropertyName(ct_qtyunit)
SetValue6   = mm
SetProperty7= ResultPropertyName(ct_maxarea)
SetValue7   = 
Type7       = Text
SetProperty8= ResultPropertyName(ct_netarea)
SetValue8   = 
Type8       = Text
UpdateIAM   = 0
UpdateIPT   = 1
Goto        = exit
 
[UpdateRule1.21]    ; SQB for square bar    eller kanskje vi skulle ha en felles kode BAR for SQB og FL med en egen funksjon som evaluerte om målene var like > SQB eller fantes i en tabell > FL
IfProperty  = ct_cut_info
IfValue     = SQB
SetProperty = ResultPropertyName(PartDescription)
SetValue    = Square Bar (ExtW,0:) L=(ExtL,0:) (pp:ct_remarks)
SetProperty1= ResultPropertyName(StockDescription)
SetValue1   = Square Bar (ExtW,0:)
SetProperty2= ResultPropertyName(ProfileCutLength)
SetValue2   = (ExtL,0:)
SetProperty3= ResultPropertyName(ExternalDimensions)
SetValue3   = (ExtL,0:)
Type3       = Text
SetProperty4= ResultPropertyName(CutWidth)
SetValue4   = 
Type4       = Text
SetProperty5= ResultPropertyName(ct_qty)
SetValue5   = (ExtL,0:) mm
SetProperty6= ResultPropertyName(ct_qtyunit)
SetValue6   = mm
SetProperty7= ResultPropertyName(ct_maxarea)
SetValue7   = 
Type7       = Text
SetProperty8= ResultPropertyName(ct_netarea)
SetValue8   = 
Type8       = Text
UpdateIAM   = 0
UpdateIPT   = 1
Goto        = exit

[UpdateRule1.22]    ; TBAR measures the longest length for TBAR steel profiles and find profile dimension from width
IfProperty  = ct_cut_info
IfValue     = TBAR
SetProperty = ResultPropertyName(PartDescription)
SetValue    = T(ExtW,0:) L=(ExtL,0:) (pp:ct_remarks)
SetProperty1= ResultPropertyName(StockDescription)
SetValue1   = T(ExtW,0:)
SetProperty2= ResultPropertyName(ProfileCutLength)
SetValue2   = (ExtL:)
SetProperty3= ResultPropertyName(ExternalDimensions)
SetValue3   = (ExtL,0:)
Type3       = Text
SetProperty4= ResultPropertyName(CutWidth)
SetValue4   = 
Type4       = Text
SetProperty5= ResultPropertyName(ct_qty)
SetValue5   = (ExtL,0:) mm
SetProperty6= ResultPropertyName(ct_qtyunit)
SetValue6   = mm
SetProperty7= ResultPropertyName(ct_maxarea)
SetValue7   = 
Type7       = Text
SetProperty8= ResultPropertyName(ct_netarea)
SetValue8   = 
Type8       = Text
UpdateIAM   = 0
UpdateIPT   = 1
Goto        = exit

[UpdateRule1.23]    ; INP measures the longest length for INP steel profiles and find profile dimension from width
IfProperty  = ct_cut_info
IfValue     = INP
SetProperty = ResultPropertyName(PartDescription)
SetValue    = INP (ExtW,0:) L=(ExtL,0:) (pp:ct_remarks)
SetProperty1= ResultPropertyName(StockDescription)
SetValue1   = INP (ExtW,0:)
SetProperty2= ResultPropertyName(ProfileCutLength)
SetValue2   = (ExtL:)
SetProperty3= ResultPropertyName(ExternalDimensions)
SetValue3   = (ExtL,0:)
Type3       = Text
SetProperty4= ResultPropertyName(CutWidth)
SetValue4   = 
Type4       = Text
SetProperty5= ResultPropertyName(ct_qty)
SetValue5   = (ExtL,0:) mm
SetProperty6= ResultPropertyName(ct_qtyunit)
SetValue6   = mm
SetProperty7= ResultPropertyName(ct_maxarea)
SetValue7   = 
Type7       = Text
SetProperty8= ResultPropertyName(ct_netarea)
SetValue8   = 
Type8       = Text
UpdateIAM   = 0
UpdateIPT   = 1
Goto        = exit

[UpdateRule1.24]    ; IPE measures the longest length for IPE steel profiles and find profile dimension from width
IfProperty  = ct_cut_info
IfValue     = IPE
SetProperty = ResultPropertyName(PartDescription)
SetValue    = IPE (ExtW,0:) L=(ExtL,0:) (pp:ct_remarks)
SetProperty1= ResultPropertyName(StockDescription)
SetValue1   = IPE (ExtW,0:)
SetProperty2= ResultPropertyName(ProfileCutLength)
SetValue2   = (ExtL:)
SetProperty3= ResultPropertyName(ExternalDimensions)
SetValue3   = (ExtL,0:)
Type3       = Text
SetProperty4= ResultPropertyName(CutWidth)
SetValue4   = 
Type4       = Text
SetProperty5= ResultPropertyName(ct_qty)
SetValue5   = (ExtL,0:) mm
SetProperty6= ResultPropertyName(ct_qtyunit)
SetValue6   = mm
SetProperty7= ResultPropertyName(ct_maxarea)
SetValue7   = 
Type7       = Text
SetProperty8= ResultPropertyName(ct_netarea)
SetValue8   = 
Type8       = Text
UpdateIAM   = 0
UpdateIPT   = 1
Goto        = exit

[UpdateRule1.25]    ; UAP measures the longest length for UAP steel profiles and find profile dimension from width
IfProperty  = ct_cut_info
IfValue     = UAP
SetProperty = ResultPropertyName(PartDescription)
SetValue    = UAP (ExtW,0:) L=(ExtL,0:) (pp:ct_remarks)
SetProperty1= ResultPropertyName(StockDescription)
SetValue1   = UAP (ExtW,0:)
SetProperty2= ResultPropertyName(ProfileCutLength)
SetValue2   = (ExtL:)
SetProperty3= ResultPropertyName(ExternalDimensions)
SetValue3   = (ExtL,0:)
Type3       = Text
SetProperty4= ResultPropertyName(CutWidth)
SetValue4   = 
Type4       = Text
SetProperty5= ResultPropertyName(ct_qty)
SetValue5   = (ExtL,0:) mm
SetProperty6= ResultPropertyName(ct_qtyunit)
SetValue6   = mm
SetProperty7= ResultPropertyName(ct_maxarea)
SetValue7   = 
Type7       = Text
SetProperty8= ResultPropertyName(ct_netarea)
SetValue8   = 
Type8       = Text
UpdateIAM   = 0
UpdateIPT   = 1
Goto        = exit

[UpdateRule1.26]    ; UNP measures the longest length for UNP steel profiles and find profile dimension from width
IfProperty  = ct_cut_info
IfValue     = UNP
SetProperty = ResultPropertyName(PartDescription)
SetValue    = UNP (ExtW,0:) L=(ExtL,0:) (pp:ct_remarks)
SetProperty1= ResultPropertyName(StockDescription)
SetValue1   = UNP (ExtW,0:)
SetProperty2= ResultPropertyName(ProfileCutLength)
SetValue2   = (ExtL:)
SetProperty3= ResultPropertyName(ExternalDimensions)
SetValue3   = (ExtL,0:)
Type3       = Text
SetProperty4= ResultPropertyName(CutWidth)
SetValue4   = 
Type4       = Text
SetProperty5= ResultPropertyName(ct_qty)
SetValue5   = (ExtL,0:) mm
SetProperty6= ResultPropertyName(ct_qtyunit)
SetValue6   = mm
SetProperty7= ResultPropertyName(ct_maxarea)
SetValue7   = 
Type7       = Text
SetProperty8= ResultPropertyName(ct_netarea)
SetValue8   = 
Type8       = Text
UpdateIAM   = 0
UpdateIPT   = 1
Goto        = exit

[UpdateRule1.27]    ; UPE measures the longest length for UPE steel profiles and find profile dimension from width
IfProperty  = ct_cut_info
IfValue     = UPE
SetProperty = ResultPropertyName(PartDescription)
SetValue    = UPE (ExtW,0:) L=(ExtL,0:) (pp:ct_remarks)
SetProperty1= ResultPropertyName(StockDescription)
SetValue1   = UPE (ExtW,0:)
SetProperty2= ResultPropertyName(ProfileCutLength)
SetValue2   = (ExtL:)
SetProperty3= ResultPropertyName(ExternalDimensions)
SetValue3   = (ExtL,0:)
Type3       = Text
SetProperty4= ResultPropertyName(CutWidth)
SetValue4   = 
Type4       = Text
SetProperty5= ResultPropertyName(ct_qty)
SetValue5   = (ExtL,0:) mm
SetProperty6= ResultPropertyName(ct_qtyunit)
SetValue6   = mm
SetProperty7= ResultPropertyName(ct_maxarea)
SetValue7   = 
Type7       = Text
SetProperty8= ResultPropertyName(ct_netarea)
SetValue8   = 
Type8       = Text
UpdateIAM   = 0
UpdateIPT   = 1
Goto        = exit

[UpdateRule1.28]    ; USP measures the longest length for USP steel profiles and find profile dimension from width
IfProperty  = ct_cut_info
IfValue     = USP
SetProperty = ResultPropertyName(PartDescription)
SetValue    = USP (ExtW,0:) L=(ExtL,0:) (pp:ct_remarks)
SetProperty1= ResultPropertyName(StockDescription)
SetValue1   = USP (ExtW,0:)
SetProperty2= ResultPropertyName(ProfileCutLength)
SetValue2   = (ExtL:)
SetProperty3= ResultPropertyName(ExternalDimensions)
SetValue3   = (ExtL,0:)
Type3       = Text
SetProperty4= ResultPropertyName(CutWidth)
SetValue4   = 
Type4       = Text
SetProperty5= ResultPropertyName(ct_qty)
SetValue5   = (ExtL,0:) mm
SetProperty6= ResultPropertyName(ct_qtyunit)
SetValue6   = mm
SetProperty7= ResultPropertyName(ct_maxarea)
SetValue7   = 
Type7       = Text
SetProperty8= ResultPropertyName(ct_netarea)
SetValue8   = 
Type8       = Text
UpdateIAM   = 0
UpdateIPT   = 1
Goto        = exit

[UpdateRule1.29]    ; H measures the longest length for H and I steel profiles and find profile type

; Mark! (FindProfileType:) is not finished yet 

IfProperty  = ct_cut_info
IfValue     = H
SetProperty = ResultPropertyName(PartDescription)
SetValue    = (FindProfileType:) L=(ExtL,0:) (pp:ct_remarks)
SetProperty1= ResultPropertyName(StockDescription)
SetValue1   = (FindProfileType:)
SetProperty2= ResultPropertyName(ProfileCutLength)
SetValue2   = (ExtL,0:)
SetProperty3= ResultPropertyName(ExternalDimensions)
SetValue3   = (ExtL,0:)
Type3       = Text
SetProperty4= ResultPropertyName(CutWidth)
SetValue4   = 
Type4       = Text
SetProperty5= ResultPropertyName(ct_qty)
SetValue5   = (ExtL,0:) mm
SetProperty6= ResultPropertyName(ct_qtyunit)
SetValue6   = mm
SetProperty7= ResultPropertyName(ct_maxarea)
SetValue7   = 
Type7       = Text
SetProperty8= ResultPropertyName(ct_netarea)
SetValue8   = 
Type8       = Text
UpdateIAM   = 0
UpdateIPT   = 1
Goto        = exit

[UpdateRule1.30]    ; HEB measures the longest length for HEB steel profiles and find profile dimension from width
IfProperty  = ct_cut_info
IfValue     = HEB
SetProperty = ResultPropertyName(PartDescription)
SetValue    = HEB (ExtW,0:) L=(ExtL,0:) (pp:ct_remarks)
SetProperty1= ResultPropertyName(StockDescription)
SetValue1   = HEB (ExtW,0:)
SetProperty2= ResultPropertyName(ProfileCutLength)
SetValue2   = (ExtL:)
SetProperty3= ResultPropertyName(ExternalDimensions)
SetValue3   = (ExtL,0:)
Type3       = Text
SetProperty4= ResultPropertyName(CutWidth)
SetValue4   = 
Type4       = Text
SetProperty5= ResultPropertyName(ct_qty)
SetValue5   = (ExtL,0:) mm
SetProperty6= ResultPropertyName(ct_qtyunit)
SetValue6   = mm
SetProperty7= ResultPropertyName(ct_maxarea)
SetValue7   = 
Type7       = Text
SetProperty8= ResultPropertyName(ct_netarea)
SetValue8   = 
Type8       = Text
UpdateIAM   = 0
UpdateIPT   = 1
Goto        = exit

[UpdateRule1.31]    ; hopper til 1.60 (for å legge til en ny regel bruk dette nummert og øk denne med 1) 
IfProperty  = Design Tracking Properties.Document SubType Name
IfValue     = (Exist)
Goto        = 60

[UpdateRule1.60]    ; Restore original Part Number and Stock Number and set ct_description as Part Number
IfProperty  = ct_cut_info
IfValue     = OPNSN
SetProperty = ResultPropertyName(PartDescription)
SetValue    = (pp:Original Part Number)
SetProperty1= ResultPropertyName(StockDescription)
SetValue1   = (pp:Original Stock Number)
SetProperty2= ResultPropertyName(CutLength)
SetValue2   = 
Type2       = Text
SetProperty3= ResultPropertyName(ExternalDimensions)
SetValue3   = 
Type3       = Text
SetProperty4= ResultPropertyName(CutWidth)
SetValue4   = 
Type4       = Text
SetProperty5= ResultPropertyName(ct_maxarea)
SetValue5   = 
Type5       = Text
SetProperty6= ResultPropertyName(ct_netarea)
SetValue6   = 
Type6       = Text
SetProperty7= ResultPropertyName(ct_qty)
SetValue7   = 
SetProperty8= ResultPropertyName(ct_qtyunit)
SetValue8   = 
UpdateIAM   = 0
UpdateIPT   = 1
Goto        = exit

[UpdateRule1.61]    ; BOLT for bolts
IfProperty  = ct_cut_info
IfValue     = BOLT
SetProperty = ResultPropertyName(PartDescription)
SetValue    = (pp:ct_boltdimension)x(pv,0:ct_lengde) (pp:ct_boltdescription) (pp:ct_remarks)
SetProperty1= Design Tracking Properties.Stock Number
SetValue1   = (pp:ct_boltdimension)x(pv,0:ct_lengde) (pp:ct_boltdescription)
SetProperty2= ResultPropertyName(ProfileCutLength)
SetValue2   = 
Type2       = Text
SetProperty3= ResultPropertyName(ExternalDimensions)
SetValue3   = 
Type3       = Text
SetProperty4= ResultPropertyName(CutLength)
SetValue4   = 
Type4       = Text
SetProperty5= ResultPropertyName(CutWidth)
SetValue5   = 
Type5       = Text
SetProperty6= ResultPropertyName(ct_maxarea)
SetValue6   = 
Type6       = Text
SetProperty7= ResultPropertyName(ct_netarea)
SetValue7   = 
Type7       = Text
SetProperty8= ResultPropertyName(ct_qty)
SetValue8   = 
SetProperty9= ResultPropertyName(ct_qtyunit)
SetValue9   = 
UpdateIAM   = 0
UpdateIPT   = 1
Goto        = exit

[UpdateRule1.62]    ; TRE for square section of wood
IfProperty  = ct_cut_info
IfValue     = TRE
SetProperty = ResultPropertyName(PartDescription)
SetValue    = Tre (ExtT,0:)x(ExtW,0:) L=(ExtL,0:) (pp:ct_remarks)
SetProperty1= ResultPropertyName(StockDescription)
SetValue1   = Tre (ExtT,0:)x(ExtW,0:)
SetProperty2= ResultPropertyName(ProfileCutLength)
SetValue2   = (ExtL,0:)
SetProperty3= ResultPropertyName(ExternalDimensions)
SetValue3   = (ExtL,0:)
Type3       = Text
SetProperty4= ResultPropertyName(CutWidth)
SetValue4   = 
Type4       = Text
SetProperty5= ResultPropertyName(ct_maxarea)
SetValue5   = 
Type5       = Text
SetProperty6= ResultPropertyName(ct_netarea)
SetValue6   = 
Type6       = Text
SetProperty7= ResultPropertyName(ct_qty)
SetValue7   = (ExtL,0:) mm
SetProperty8= ResultPropertyName(ct_qtyunit)
SetValue8   = mm
UpdateIAM   = 0
UpdateIPT   = 1
Goto        = exit

[UpdateRule1.63]    ; hopper til 1.70 
IfProperty  = Design Tracking Properties.Document SubType Name
IfValue     = (Exist)
Goto        = 70

[UpdateRule1.70]    ; for all other with cut info
IfProperty  = ct_cut_info
IfValue     = (Exist)
SetProperty = ResultPropertyName(PartDescription)
SetValue    = (ct_description:) (pp:ct_remarks)
SetProperty1= ResultPropertyName(CutWidth)
SetValue1   = (len2,0:)
SetProperty2= ResultPropertyName(CutLength)
SetValue2   = (len1,0:)
UpdateIAM   = 0
UpdateIPT   = 1
Goto        = 100

[UpdateRule1.71]    ; hopper til 1.100 dvs hopper over deler med G_L og PL property og deler uten ct_cut_info
IfProperty  = Design Tracking Properties.Document SubType Name
IfValue     = (Exist)
Goto        = 100

;--- Frame generator start ---
[UpdateRule1.80]    ; Frame generator, Content Center and other parts with G_L property
IfProperty  = G_L
IfValue     = (Exist)
SetProperty = ResultPropertyName(PartDescription)
;SetValue    = (pp: Design Tracking Properties.Stock Number) L=(len1,0:) (pp:ct_remarks)
SetValue    = (pp: Design Tracking Properties.Stock Number) L=(pv,0: G_L) (pp:ct_remarks)
SetProperty1= ResultPropertyName(ProfileCutLength)
;SetValue1   = (len1,0:)
SetValue1   = (pv,0: G_L)
SetProperty2= ResultPropertyName(ExternalDimensions)
SetValue2   = (pv,0: G_L)
Type2       = Text
SetProperty3= ResultPropertyName(CutWidth)
SetValue3   = 
Type3       = Text
SetProperty4= ResultPropertyName(ct_maxarea)
SetValue4   = 
Type4       = Text
SetProperty5= ResultPropertyName(ct_netarea)
SetValue5   = 
Type5       = Text
SetProperty6= ResultPropertyName(ct_qty)
SetValue6   = (pv,0: G_L) mm
SetProperty7= ResultPropertyName(ct_qtyunit)
SetValue7   = mm
UpdateIAM   = 0
UpdateIPT   = 1
Goto        = exit
;--- Frame generator end ---

;--- Tube & Pipe start ---
[UpdateRule1.81]    ; Tube & Pipe, Content Center and other parts with PL property
IfProperty  = PL
IfValue     = (Exist)
SetProperty = Design Tracking Properties.Part Number
;SetValue    = (pp: Design Tracking Properties.Stock Number) L=(LenX,0:) (pp:ct_remarks)
SetValue    = (pp: Design Tracking Properties.Stock Number) L=(pv,0: PL) (pp:ct_remarks)
SetProperty1= ResultPropertyName(ProfileCutLength)
;SetValue1   = (LenX,0:)
SetValue1   = (pv,0: PL)
SetProperty2= ResultPropertyName(ExternalDimensions)
SetValue2   = (pv,0: PL)
Type2       = Text
SetProperty3= ResultPropertyName(CutWidth)
SetValue3   = 
Type3       = Text
SetProperty4= ResultPropertyName(ct_maxarea)
SetValue4   = 
Type4       = Text
SetProperty5= ResultPropertyName(ct_netarea)
SetValue5   = 
Type5       = Text
SetProperty6= ResultPropertyName(ct_qty)
SetValue6   = (pv,0: PL) mm
SetProperty7= ResultPropertyName(ct_qtyunit)
SetValue7   = mm
UpdateIAM   = 0
UpdateIPT   = 1
Goto        = exit
;--- Tube & Pipe end ---

[UpdateRule1.82]    ; hopper til 1.90 
IfProperty  = Design Tracking Properties.Document SubType Name
IfValue     = (Exist)
Goto        = 90

;--- ct_description for components without cut info start ---
[UpdateRule1.90]    ; set ct_description for components without cut info
IfProperty  = ct_cut_info
IfValue     = 
SetProperty = ResultPropertyName(PartDescription)
SetValue    = (DescriptionWithoutCutInfo:)
SetProperty1= ResultPropertyName(CutLength)
SetValue1   = 
Type1       = Text
SetProperty2= ResultPropertyName(CutWidth)
SetValue2   = 
Type2       = Text
SetProperty3= ResultPropertyName(ExternalDimensions)
SetValue3   = 
Type3       = Text
SetProperty4= ResultPropertyName(ProfileCutLength)
SetValue4   = 
Type4       = Text
SetProperty5= ResultPropertyName(ct_maxarea)
SetValue5   = 
Type5       = Text
SetProperty6= ResultPropertyName(ct_netarea)
SetValue6   = 
Type6       = Text
Goto        = exit
;--- ct_description for components without cut info end ---

[UpdateRule1.100]   ; ResultPropertyName(ExternalDimensions) for components with ResultPropertyName(CutWidth) (arealdeler)
IfProperty  = ResultPropertyName(CutWidth)
IfValue     = (Exist)
SetProperty = ResultPropertyName(ExternalDimensions)
SetValue    = (MaxLen,0:) x (MinLen,0:)
Type        = Text
UpdateIAM   = 0
UpdateIPT   = 1
Goto        = 103

[UpdateRule1.101]   ; ct_outer_dimensions for components with ResultPropertyName(CutLength) (løpemeterdeler)
IfProperty  = ResultPropertyName(CutLength)
IfValue     = (Exist)
SetProperty = ResultPropertyName(ExternalDimensions)
SetValue    = (len1,0:)
Type        = Text
SetProperty1= ResultPropertyName(ct_qty)
SetValue1   = (len1,0:) mm
SetProperty2= ResultPropertyName(ct_qtyunit)
SetValue2   = mm
SetProperty3= ResultPropertyName(CutWidth)
SetValue3   = 
Type3       = Text
SetProperty4= ResultPropertyName(ct_maxarea)
SetValue4   = 
Type4       = Text
SetProperty5= ResultPropertyName(ct_netarea)
SetValue5   = 
Type5       = Text
UpdateIAM   = 0
UpdateIPT   = 1
Goto        = exit

[UpdateRule1.102]   ; clear Cadit qty properties for all other
;IfProperty  = ResultPropertyName(CutLength)
;IfValue     = (Exist)
SetProperty = ResultPropertyName(CutLength)
SetValue    = 
Type        = Text
SetProperty1= ResultPropertyName(CutWidth)
SetValue1   = 
Type1       = Text
SetProperty2= ResultPropertyName(ExternalDimensions)
SetValue2   = 
Type2       = Text
SetProperty3= ResultPropertyName(ct_maxarea)
SetValue3   = 
Type3       = Text
SetProperty4= ResultPropertyName(ct_netarea)
SetValue4   = 
Type4       = Text
SetProperty5= ResultPropertyName(ct_qty)
SetValue5   = 
Type5       = Text
SetProperty6= ResultPropertyName(ct_qtyunit)
SetValue6   = 
Type6       = Text
UpdateIAM   = 1
UpdateIPT   = 1
Goto        = exit

[UpdateRule1.103]   ; ResultPropertyName(ExternalDimensions) for components with ResultPropertyName(CutWidth) (arealdeler)
SetProperty = ResultPropertyName(ct_qty)
SetValue    = (MaxArea_m2,-3:) m^2
SetProperty1= ResultPropertyName(ct_qtyunit)
SetValue1   = m²
SetProperty2= ResultPropertyName(ct_maxarea)
SetValue2   = (MaxArea_m2,-3:)
SetProperty3= ResultPropertyName(ct_netarea)
SetValue3   = (netarea_m2,-3:)
UpdateIAM   = 0
UpdateIPT   = 1
Goto        = exit
[UpdateRule2] ; Measure Content Center Profiles: parts with G_L property
Description = Measure Content Center Profiles
Comments    = Read profile length and update description properties for parts with G_L property
DefaultChecked = 1
InUse       = 1
Mandatory   = 1

[UpdateRule2.1]    ; hopp over alle med ct_cut_info
IfProperty  = ct_cut_info
IfValue     = (Exist)
Goto        = exit

[UpdateRule2.2]    ; hopp over alle uten G_L property
IfProperty  = G_L
IfValue     = 
Goto        = exit

[UpdateRule2.3]   ; ta vare på Part Number i ResultPropertyName(OriginalPartNumber)
IfProperty  = ResultPropertyName(OriginalPartNumber)
IfValue     = 
SetProperty = ResultPropertyName(OriginalPartNumber)
SetValue    = (pp: Design Tracking Properties.Part Number)
UpdateIAM   = 1
UpdateIPT   = 1

[UpdateRule2.4]   ; ta vare på Stock Number i Original Stock Number
IfProperty  = ResultPropertyName(OriginalStockNumber)
IfValue     = 
SetProperty = ResultPropertyName(OriginalStockNumber)
SetValue    = (pp: Design Tracking Properties.Stock Number)
UpdateIAM   = 1
UpdateIPT   = 1

;--- Frame generator start ---
[UpdateRule2.5]    ; Frame generator, Content Center and other parts with G_L property
IfProperty  = G_L
IfValue     = (Exist)
SetProperty = ResultPropertyName(PartDescription)
;SetValue    = (pp: Design Tracking Properties.Stock Number) L=(len1,0:) (pp:ct_remarks)
SetValue    = (pp: Design Tracking Properties.Stock Number) L=(pv,0: G_L) (pp:ct_remarks)
SetProperty1= ResultPropertyName(CutLength)
;SetValue1   = (len1,0:)
SetValue1   = (pv,0: G_L)
SetProperty2= ResultPropertyName(ExternalDimensions)
SetValue2   = (pv,0: G_L)
Type2       = Text
SetProperty3= ResultPropertyName(CutWidth)
SetValue3   = 
Type3       = Text
SetProperty4= ResultPropertyName(ct_qty)
SetValue4   = (pv,0: G_L) mm
SetProperty5= ResultPropertyName(ct_qtyunit)
SetValue5   = mm
UpdateIAM   = 0
UpdateIPT   = 1
Goto        = exit
;--- Frame generator end ---

[UpdateRule3] ; Measure Content Center Pipes: parts with PL property
Description = Measure Content Center Pipes
Comments    = Read pipelength and update description properties for parts with PL property
DefaultChecked = 1
InUse       = 1
Mandatory   = 1

[UpdateRule3.1]    ; hopp over alle med ct_cut_info
IfProperty  = ct_cut_info
IfValue     = (Exist)
Goto        = exit

[UpdateRule3.2]    ; hopp over alle uten PL property
IfProperty  = PL
IfValue     = 
Goto        = exit

[UpdateRule3.3]   ; ta vare på Part Number i ResultPropertyName(OriginalPartNumber)
IfProperty  = ResultPropertyName(OriginalPartNumber)
IfValue     = 
SetProperty = ResultPropertyName(OriginalPartNumber)
SetValue    = (pp: Design Tracking Properties.Part Number)
UpdateIAM   = 1
UpdateIPT   = 1

[UpdateRule3.4]   ; ta vare på Stock Number i Original Stock Number
IfProperty  = ResultPropertyName(OriginalStockNumber)
IfValue     = 
SetProperty = ResultPropertyName(OriginalStockNumber)
SetValue    = (pp: Design Tracking Properties.Stock Number)
UpdateIAM   = 1
UpdateIPT   = 1

;--- Tube & Pipe start ---
[UpdateRule3.5]    ; Tube & Pipe, Content Center and other parts with PL property
IfProperty  = PL
IfValue     = (Exist)
SetProperty = ResultPropertyName(PartDescription)
;SetValue    = (pp: Design Tracking Properties.Stock Number) L=(LenX,0:) (pp:ct_remarks)
SetValue    = (pp: Design Tracking Properties.Stock Number) L=(pv,0: PL) (pp:ct_remarks)
SetProperty1= ResultPropertyName(CutLength)
;SetValue1   = (LenX,0:)
SetValue1   = (pv,0: PL)
SetProperty2= ResultPropertyName(ExternalDimensions)
SetValue2   = (pv,0: PL)
Type2       = Text
SetProperty3= ResultPropertyName(CutWidth)
SetValue3   = 
Type3       = Text
SetProperty4= ResultPropertyName(ct_qty)
SetValue4   = (pv,0: PL) mm
SetProperty5= ResultPropertyName(ct_qtyunit)
SetValue5   = mm
UpdateIAM   = 0
UpdateIPT   = 1
Goto        = exit
;--- Tube & Pipe end ---

[UpdateRule4] ; Describe uncoded sheet metal parts
Description = Describe uncoded sheet metal parts as plate
Comments    = Updates description for all sheet metal parts without ct_cut_info property
DefaultChecked = 0
InUse       = 1
Mandatory   = 0

[UpdateRule4.1]    ; hopp over alle med ct_cut_info
IfProperty  = ct_cut_info
IfValue     = (Exist)
Goto        = exit
 
[UpdateRule4.2]    ; hopp over alle med G_L property
IfProperty  = G_L
IfValue     = (Exist)
Goto        = exit
 
[UpdateRule4.3]    ; hopp over alle med PL property
IfProperty  = PL
IfValue     = (Exist)
Goto        = exit
 
[UpdateRule4.4]    ; hopp over alle uten Sheet Metal Rule property
IfProperty  = Design Tracking Properties.Sheet Metal Rule
IfValue     = 
Goto        = exit
 
[UpdateRule4.5]   ; ta vare på Part Number i ResultPropertyName(OriginalPartNumber)
IfProperty  = ResultPropertyName(OriginalPartNumber)
IfValue     = 
SetProperty = ResultPropertyName(OriginalPartNumber)
SetValue    = (pp: Design Tracking Properties.Part Number)
UpdateIAM   = 1
UpdateIPT   = 1
 
[UpdateRule4.6]   ; ta vare på Stock Number i Original Stock Number
IfProperty  = ResultPropertyName(OriginalStockNumber)
IfValue     = 
SetProperty = ResultPropertyName(OriginalStockNumber)
SetValue    = (pp: Design Tracking Properties.Stock Number)
UpdateIAM   = 1
UpdateIPT   = 1
 
[UpdateRule4.7]   
IfProperty  = Design Tracking Properties.Sheet Metal Rule
IfValue     = (Exist)
SetProperty = ResultPropertyName(PartDescription)
SetValue    = PL (ExtT,-1:) x (ExtL,0:) x (ExtW,0:) (pp:ct_remarks)
SetProperty1= ResultPropertyName(StockDescription)
SetValue1   = PL (ExtT,-1:)
SetProperty2= ResultPropertyName(CutLength)
SetValue2   = (ExtL,0:)
SetProperty3= ResultPropertyName(CutWidth)
SetValue3   = (ExtW,0:)
SetProperty4= ResultPropertyName(ExternalDimensions)
SetValue4   = (ExtL,0:) x (ExtW,0:)
SetProperty5= ResultPropertyName(ct_maxarea)
SetValue5   = (SheetMetalArea_m2,-3:)
SetProperty6= ResultPropertyName(ct_netarea)
SetValue6   = (netarea_m2,-3:)
SetProperty7= ResultPropertyName(ct_qty)
SetValue7   = (SheetMetalArea_m2,-3:) m^2
SetProperty8= ResultPropertyName(ct_qtyunit)
SetValue8   = m²
UpdateIAM   = 0
UpdateIPT   = 1

[UpdateRule5] ; Describe uncoded components (ct_cut_info)
Description = Describe uncoded components 
Comments    = Updates description for componets without ct_cut_info property, except sheet metal parts
DefaultChecked = 0
InUse       = 0
Mandatory   = 0

[UpdateRule5.1]    ; hopp over alle med ct_cut_info
IfProperty  = ct_cut_info
IfValue     = (Exist)
Goto        = exit
 
[UpdateRule5.2]    ; hopp over Frame generator, Content Center and other parts with G_L property
IfProperty  = G_L
IfValue     = (Exist)
Goto        = exit
 
[UpdateRule5.3]    ; hopp over Tube & Pipe, Content Center and other parts with PL property
IfProperty  = PL
IfValue     = (Exist)
Goto        = exit
 
[UpdateRule5.4]    ; hopp over alle uten Sheet Metal Rule property
IfProperty  = Design Tracking Properties.Sheet Metal Rule
IfValue     = (Exist) 
Goto        = exit
 
[UpdateRule5.5]   ; ta vare på Part Number i ResultPropertyName(OriginalPartNumber)
IfProperty  = ResultPropertyName(OriginalPartNumber)
IfValue     = 
SetProperty = ResultPropertyName(OriginalPartNumber)
SetValue    = (pp: Design Tracking Properties.Part Number)
UpdateIAM   = 1
UpdateIPT   = 1
 
[UpdateRule5.6]   ; ta vare på Stock Number i Original Stock Number
IfProperty  = ResultPropertyName(OriginalStockNumber)
IfValue     = 
SetProperty = ResultPropertyName(OriginalStockNumber)
SetValue    = (pp: Design Tracking Properties.Stock Number)
UpdateIAM   = 1
UpdateIPT   = 1
 
--- ct_description for components without cut info start ---

[UpdateRule5.7]    ; set ct_description for components without cut info
IfProperty  = ct_cut_info
IfValue     = 
SetProperty = ResultPropertyName(PartDescription)
SetValue    = (DescriptionWithoutCutInfo:)
SetProperty1= ResultPropertyName(CutLength)
SetValue1   = 
Type1       = Text
SetProperty2= ResultPropertyName(CutWidth)
SetValue2   = 
Type2       = Text
SetProperty3= ResultPropertyName(ExternalDimensions)
SetValue3   = 
Type3       = Text
Goto        = exit

--- ct_description for components without cut info end ---
 
[UpdateRule6]  ; Measure Component Extents
Description = Measure Component Extents
Comments    = Updates Component Extent properties
DefaultChecked = 0
InUse       = 0
Mandatory   = 0

; set ct_lenx, ct_leny, ct_lenz, ct_lenmax, ct_lenmid, ct_lenmin

[UpdateRule6.1] ; ct_lenx
IfProperty  = Design Tracking Properties.Document SubType Name
IfValue     = (Exist)
SetProperty = ResultPropertyName(ct_lenx)
SetValue    = (LenX,0:)
Type         = Text
UpdateIAM   = 0
UpdateIPT   = 1
 
[UpdateRule6.2] ; ct_leny
IfProperty  = Design Tracking Properties.Document SubType Name
IfValue     = (Exist)
SetProperty = ResultPropertyName(ct_leny)
SetValue    = (LenY,0:)
Type         = Text
UpdateIAM   = 0
UpdateIPT   = 1
 
[UpdateRule6.3] ; ct_lenz
IfProperty  = Design Tracking Properties.Document SubType Name
IfValue     = (Exist)
SetProperty = ResultPropertyName(ct_lenz)
SetValue    = (LenZ,0:)
Type         = Text
UpdateIAM   = 0
UpdateIPT   = 1
 
[UpdateRule6.4] ; ct_lenmax
IfProperty  = Design Tracking Properties.Document SubType Name
IfValue     = (Exist)
SetProperty = ResultPropertyName(ct_lenmax)
SetValue    = (ExtL,0:)
Type         = Text
UpdateIAM   = 0
UpdateIPT   = 1
 
[UpdateRule6.5] ; ct_lenmid
IfProperty  = Design Tracking Properties.Document SubType Name
IfValue     = (Exist)
SetProperty = ResultPropertyName(ct_lenmid)
SetValue    = (ExtW,0:)
Type         = Text
UpdateIAM   = 0
UpdateIPT   = 1
 
[UpdateRule6.6] ; ct_lenmin
IfProperty  = Design Tracking Properties.Document SubType Name
IfValue     = (Exist)
SetProperty = ResultPropertyName(ct_lenmin)
SetValue    = (ExtTZ,0:)
Type         = Text
UpdateIAM   = 0
UpdateIPT   = 1
Goto        = exit
 
[UpdateRule7]  ; Plate Area and Net Area
Description = Plate Area and Net Area
Comments    = Plate Area is max length x max width. Net Area is Volume divided by plate thickness
DefaultChecked = 0
InUse       = 0
Mandatory   = 0
 
[UpdateRule7.1]
IfProperty  = ct_cut_info
IfValue     = FPEL
SetProperty = ResultPropertyName(ct_maxarea)
SetValue    = 
Goto        = 3
 
[UpdateRule7.2]
IfProperty  = ct_cut_info
IfValue     = (Exist)
SetProperty = ResultPropertyName(ct_maxarea)
SetValue    = (MaxArea_m2:2) m2
UpdateIAM   = 0
UpdateIPT   = 1
 
[UpdateRule7.3]
IfProperty  = ct_cut_info
IfValue     = FPEL
SetProperty = ResultPropertyName(ct_netarea)
SetValue    = 
Goto        = exit

[UpdateRule7.4]
IfProperty  = ct_cut_info
IfValue     = (Exist)
SetProperty = ResultPropertyName(ct_netarea)
SetValue    = (VolDivByPP:ct_section_area)
UpdateIAM   = 0
UpdateIPT   = 1

[UpdateRule8] ; Material/Dwg property
Description = Material/Dwg property
Comments    = Set property to Drawing reference if ct_dwg_ref is set, otherwise to Material.
DefaultChecked = 0
InUse       = 0
Mandatory   = 0
 
[UpdateRule8.1]
IfProperty  = ct_filename_on
IfValue     = true
SetProperty = ct_filename
SetValue    = (Name:)
UpdateIAM   = 1
UpdateIPT   = 1
 
[UpdateRule8.2]
IfProperty  = ct_filename_on
IfValue     = false
SetProperty = ct_filename
SetValue    = 
UpdateIAM   = 1
UpdateIPT   = 1
 
[UpdateRule8.3]
IfProperty  = ct_dwg_ref
IfValue     = (Exist)
SetProperty = ct_material_dwg
SetValue    = (pp:ct_dwg_ref)
UpdateIAM   = 1
UpdateIPT   = 1
Goto        = exit
;Goto        = 5
 
[UpdateRule8.4]
IfProperty  = 
IfValue     = 
SetProperty = ct_material_dwg
SetValue    = (material:)
;UpdateIAM   = 1
UpdateIPT   = 1
Goto        = exit
 
;[UpdateRule8.5]
;IfProperty  = ct_dwg_ref
;IfValue     = 
;SetProperty = ct_material_dwg
;SetValue    = (material:)
;UpdateIAM   = 1
;UpdateIPT   = 1
 
[UpdateRule9]  ; Sheet Metal Style name
Description = Sheet Metal Style name
Comments    = Set sheet metal style name on sheet metal parts
HideForIPT  = 0
MasterLODOnly= 0
InUse       = 0
 
[UpdateRule9.1]
IfProperty  = ct_cut_info
IfValue     = (Exist)
SetProperty = ct_sheetmetalstyle
SetValue    = (sheetmetalstyle:)
UpdateIAM   = 0
UpdateIPT   = 1
 
[UpdateRule10] ; use filename as part number
Description = Use filename as Part Number
Comments    = Set the value of Part Number same as the filename whitout extension.
DefaultChecked = 0
InUse       = 0
Mandatory   = 0
 
[UpdateRule10.1]   ; Filename
IfProperty  = Design Tracking Properties.Document SubType Name
IfValue     = (Exist)
SetProperty = Design Tracking Properties.Part Number
SetValue    = (Name:)
Type        = Text
UpdateIAM   = 1
UpdateIPT   = 1
Goto        = exit
 
[UpdateRule11]
Description = Set custom Weight, Density and COG properties
Comments    = Set values from physical properties to custom properties.
DefaultChecked = 0
InUse       = 0
Mandatory   = 0
 
[UpdateRule11.1]
IfProperty  = 
IfValue     = 
SetProperty = ResultPropertyName(ct_weight)
SetValue    = (weight:) kg
;SetValue    = (weight_g:) g
UpdateIAM   = 1
UpdateIPT   = 0
 
[UpdateRule11.2]
IfProperty  = 
IfValue     = 
SetProperty = ResultPropertyName(ct_density)
SetValue    = (pp:Design Tracking Properties.Density)
UpdateIAM   = 1
UpdateIPT   = 0
 
[UpdateRule11.3]
IfProperty  = 
IfValue     = 
SetProperty = ResultPropertyName(ct_ccogx)
SetValue    = (CCOGX:)
SetProperty1 = ResultPropertyName(ct_ccogy)
SetValue1    = (CCOGY:)
SetProperty2 = ResultPropertyName(ct_ccogz)
SetValue2    = (CCOGZ:)
UpdateIAM   = 1
UpdateIPT   = 0
 
[UpdateRule12]
Description = Referenced files
Comments    = List of assembly components with weight and BOMStructure Referenced.
DefaultChecked = 0
InUse       = 0
Mandatory   = 0
 
[UpdateRule12.1]
IfProperty  = 
IfValue     = 
SetProperty = ResultPropertyName(ct_referencedfiles)
SetValue    = (referencedfiles:)
UpdateIAM   = 1
UpdateIPT   = 0
 
[UpdateRule13]
Description  = Item No from Parts Only in Assembly BOM
Comments    = Set parts only item number from BOM in a property on the part
HideForIPT   = 1
MasterLODOnly= 1
InUse       = 0
 
[UpdateRule13.1]
IfProperty   = 
IfValue      = 
SetProperty  = ct_item
SetValue     = (ItemNo:)
Type         = Text
UpdateIAM    = 0
UpdateIPT    = 1
 
[UpdateRule14] ; Quantity properties (Current Assembly Qty)
Description = Quantity properties (Current Assembly Qty)
Comments    = Set quantity of the part from the current assembly in a property on the part
HideForIPT  = 1
MasterLODOnly= 1
InUse       = 0
 
[UpdateRule14.1]
IfProperty  =
IfValue     =
SetProperty = ct_qtyperunit
SetValue    = (qty:)
UpdateIAM   = 0
UpdateIPT   = 1
 
[UpdateRule14.2]
IfProperty  = 
IfValue     = 
SetProperty = ct_qtyunits
SetValue    = (qtyunits:)
UpdateIAM   = 0
UpdateIPT   = 1
 
[UpdateRule14.3]
IfProperty  = 
IfValue     =
SetProperty = ct_qtytot
SetValue    = (qtytot:)
UpdateIAM   = 0
UpdateIPT   = 1

[UpdateRule15]
Description = Assembly position properties
Comments    = Set origin coordinates and center of gravity on components. Set elevation relative to property ct_floor_elevation.
InUse       = 0
HideForIPT  = 1
 
[UpdateRule15.1]
IfProperty  = ct_assembly_position
IfValue     = (exist)
SetProperty = ct_origin_x
SetValue    = (OriginX,2:)
UpdateIAM   = 0
UpdateIPT   = 1
 
[UpdateRule15.2]
IfProperty  = ct_assembly_position
IfValue     = (exist)
SetProperty = ct_origin_y
SetValue    = (OriginY,2:)
UpdateIAM   = 0
UpdateIPT   = 1
 
[UpdateRule15.3]
IfProperty  = ct_assembly_position
IfValue     = (exist)
SetProperty = ct_origin_z
SetValue    = (OriginZ,2:)
UpdateIAM   = 0
UpdateIPT   = 1
 
[UpdateRule15.4]
IfProperty  = ct_assembly_position
IfValue     = (exist)
SetProperty = ct_origin_elevation
SetValue    = (OriginElev,0:ct_floor_elevation)
UpdateIAM   = 0
UpdateIPT   = 1
 
[UpdateRule15.5]
IfProperty  = ct_assembly_position
IfValue     = (exist)
SetProperty = ct_cog_x
SetValue    = (COGX,2:)
UpdateIAM   = 0
UpdateIPT   = 1
 
[UpdateRule15.6]
IfProperty  = ct_assembly_position
IfValue     = (exist)
SetProperty = ct_cog_y
SetValue    = (COGY,2:)
UpdateIAM   = 0
UpdateIPT   = 1
 
[UpdateRule15.7]
IfProperty  = ct_assembly_position
IfValue     = (exist)
SetProperty = ct_cog_z
SetValue    = (COGZ,2:)
UpdateIAM   = 0
UpdateIPT   = 1
 
[UpdateRule15.8]
IfProperty  = ct_assembly_position
IfValue     = (exist)
SetProperty = ct_cog_elevation
SetValue    = (COGElev,0:ct_floor_elevation)
UpdateIAM   = 0
UpdateIPT   = 1
 
[UpdateRule16]
Description  = Weld No
Comments     = Increments Weld No per Weld Type. Last used Weld No is saved in assembly.
DefaultChecked = 0
InUse        = 0
Mandatory    = 0
 
[UpdateRule16.1]
IfProperty   = Weld Type
IfValue      = FILLET
SetProperty  = Weld No
SetValue     = (Incr:Weld No,LastWeldFillet,1,1000,1999)
Type         = Text
UpdateIAM    = 0
UpdateIPT    = 1
Goto         = exit
 
[UpdateRule16.2]
IfProperty   = Weld Type
IfValue      = T-BUTT
SetProperty  = Weld No
SetValue     = (Incr:Weld No,LastWeldTButt,1,2000,2999)
Type         = Text
UpdateIAM    = 0
UpdateIPT    = 1
Goto         = exit
 
[UpdateRule16.3]
IfProperty   = Weld Type
IfValue      = BUTT
SetProperty  = Weld No
SetValue     = (Incr:Weld No,LastWeldButt,1,3000,3999)
Type         = Text
UpdateIAM    = 0
UpdateIPT    = 1
Goto         = exit
 
[UpdateRule16.4]
IfProperty   = Weld Type
IfValue      = (exist)
SetProperty  = Weld No
SetValue     = (Incr:Weld No,LastWeldOther,1,4000,4999)
Type         = Text
UpdateIAM    = 0
UpdateIPT    = 1
Goto         = exit

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

[UpdateRule17]
Description  = Feature Color properties
DefaultChecked = 0
InUse        = 0
Mandatory    = 0
 
[UpdateRule17.1]
IfProperty  = CT_COLOR_INFO
IfValue     = SC3
SetProperty = CT_COLOR
SetValue    = (fc:   side color1  )-(fc:side color2)-(fc:side color3)
 
[UpdateRule17.2]
IfProperty  = CT_COLOR_INFO
IfValue     = sc2
SetProperty = CT_COLOR
SetValue    = (fc:side color1)-(fc:side color2)
 
[UpdateRule17.3]
IfProperty  = CT_COLOR_INFO
IfValue     = SC1
SetProperty = CT_COLOR
SetValue    = (FC:side color1)
 
[UpdateRule18]
Description  = Size properties
DefaultChecked = 0
InUse        = 0
Mandatory    = 0
 
[UpdateRule18.1]
IfProperty  = CT_size_INFO
IfValue     = WL
SetProperty = CT_SIZE
SetValue    = (pv:ct_w) x (pv:ct_l)
 
[UpdateRule18.2]
IfProperty  = CT_size_INFO
IfValue     = TL
SetProperty = CT_SIZE
SetValue    = (pp:ct_t) x (pv:ct_l)

[UpdateRule19] ; Architectural Elements
Description  = Architectural Elements
Comments     = Set wall area, wall length, height, specification for architectural elements.
DefaultChecked = 0
InUse       = 0
Mandatory   = 0
 
[UpdateRule19.1]
IfProperty   = ct_cut_info
IfValue      = AW
SetProperty  = ct_wall_area
SetValue     = (wallarea_m2,2:)
UpdateIAM    = 0
UpdateIPT    = 1
 
[UpdateRule19.2]
IfProperty   = ct_cut_info
IfValue      = AW
SetProperty  = ct_wall_length
SetValue     = (lenx,1:)
UpdateIAM    = 0
UpdateIPT    = 1
 
[UpdateRule19.3]
IfProperty   = ct_cut_info
IfValue      = AW
SetProperty  = ct_size
SetValue     = h = (LenZ:)
UpdateIAM    = 0
UpdateIPT    = 1
 
[UpdateRule19.4]
IfProperty   = ct_cut_info
IfValue      = AAW
SetProperty  = ct_wall_area
SetValue     = (wallarea_m2,2:)
UpdateIAM    = 0
UpdateIPT    = 1
 
[UpdateRule19.5]
IfProperty   = ct_cut_info
IfValue      = AAW
SetProperty  = ct_specification
SetValue     = r = (pv: ct_radius), a = (pv: ct_vinkel) 
UpdateIAM    = 0
UpdateIPT    = 1
 
[UpdateRule19.6]
IfProperty   = ct_cut_info
IfValue      = AAW
SetProperty  = ct_size
SetValue     = h = (LenZ:)
UpdateIAM    = 0
UpdateIPT    = 1
 
[UpdateRule19.7]
IfProperty   = ct_cut_info
IfValue      = ATW
SetProperty  = ct_wall_area
SetValue     = (wallarea_m2,2:)
UpdateIAM    = 0
UpdateIPT    = 1
 
[UpdateRule19.8]
IfProperty   = ct_cut_info
IfValue      = ATW
SetProperty  = ct_specification
SetValue     = lx = (lenx,1:), ly = (leny,1:) 
UpdateIAM    = 0
UpdateIPT    = 1
 
[UpdateRule19.9]
IfProperty   = ct_cut_info
IfValue      = ATW
SetProperty  = ct_size
SetValue     = h = (LenZ:)
UpdateIAM    = 0
UpdateIPT    = 1
 
[UpdateRule19.10]
IfProperty   = ct_cut_info
IfValue      = ACP
SetProperty  = ct_wall_area
SetValue     = (wallarea_m2,2:)
UpdateIAM    = 0
UpdateIPT    = 1
 
[UpdateRule19.11]
IfProperty   = ct_cut_info
IfValue      = ACPT
SetProperty  = ct_wall_area
SetValue     = (wallarea_m2,2:)
UpdateIAM    = 0
UpdateIPT    = 1
 
[UpdateRule19.12]
IfProperty   = ct_cut_info
IfValue      = AEDF
SetProperty  = ct_wall_area
SetValue     = (wallarea_m2,2:)
UpdateIAM    = 0
UpdateIPT    = 1
 
[UpdateRule20]
Description  = iLogic
Comments     = 
DefaultChecked = 0
InUse       = 0
Mandatory   = 0
 
[UpdateRule20.1]
; IfProperty   = ct_cut_info
; IfValue      = PL
; SetProperty  = ct_description
; SetValue     = PL (ExtT:) x (ExtL,0:) x (ExtW,0:)
Rule         = ilogicfile.txt
; Rule1        = ilogicfile1.txt
; Rule2        = ilogicfile2.txt
UpdateIAM    = 0
UpdateIPT    = 1
 
[UpdateRule21]
Description  = Wildcard Test
Comments     = 
DefaultChecked = 0
InUse       = 0
Mandatory   = 0
 
[UpdateRule21.1]
IfProperty   = Design Tracking Properties.Description
IfValue      = pl*
SetProperty  = ct_description
SetValue     = PL (ExtT:) x (ExtL,0:) x (ExtW,0:)
UpdateIAM    = 0
UpdateIPT    = 1
 
[UpdateRule22]
Description  = Raw Material Weight
Comments     = Calculate Raw Material Weight based om plate dimensions or raw material plate dimensions
DefaultChecked = 0
InUse       = 0
Mandatory   = 0
 
[UpdateRule22.1]
IfProperty   = ct_cut_info
IfValue      = PL
SetProperty  = Cut Thickness
SetValue     = (ExtT:)
UpdateIAM    = 0
UpdateIPT    = 1
Goto         = 100
 
[UpdateRule22.2]
IfProperty   = ct_cut_info
IfValue      = XY
SetProperty  = Cut Thickness
SetValue     = (ExtT:)
UpdateIAM    = 0
UpdateIPT    = 1

Goto         = 100
 
[UpdateRule22.3]
IfProperty   = ct_cut_info
IfValue      = XZ
SetProperty  = Cut Thickness
SetValue     = (ExtT:)
UpdateIAM    = 0
UpdateIPT    = 1
Goto         = 100
 
[UpdateRule22.4]
IfProperty   = ct_cut_info
IfValue      = YZ
SetProperty  = Cut Thickness
SetValue     = (ExtT:)
UpdateIAM    = 0
UpdateIPT    = 1
Goto         = 100
 
[UpdateRule22.5]
IfProperty   = ct_cut_info
IfValue      = DPL
SetProperty  = Cut Thickness
SetValue     = (ExtT:)
UpdateIAM    = 0
UpdateIPT    = 1
Goto         = 100
 
[UpdateRule22.6]
IfProperty   = ct_cut_info
IfValue      = DXY
SetProperty  = Cut Thickness
SetValue     = (ExtT:)
UpdateIAM    = 0
UpdateIPT    = 1
Goto         = 100
 
[UpdateRule22.7]
SetProperty  = RawMaterialWeight
SetValue     = 
Goto         = exit
 
[UpdateRule22.100]
Rule         = RawMaterialWeight.txt
; Rule1        = ilogicfile1.txt
; Rule2        = ilogicfile2.txt
UpdateIAM    = 0
UpdateIPT    = 1

Example Update property from Parameter

Create a new update rule behind the last one in the CaditUpdate.ini file

Function

This rule copies Material to a custom property SP1-Material and the parameter thickness to SP1-Thickness

[UpdateRule24]
Description = SPI-Thickness and SPI-Material update
Comments = Automatically update SPI-Thickness and SPI-Material
DefaultChecked = 1
InUse = 1
Mandatory = 0
HideForIPT = 0

[UpdateRule24.1]
IfProperty = Material
SetProperty = SPI-MATERIAL
SetValue = (material:)
UpdateIPT = 1

[UpdateRule24.2]
IfParameter = Thickness
IfValue = (exist)
SetProperty = SPI-THICKNESS
SetValue = (pv:Thickness)
UpdateIPT = 1
Goto = exit


Was this article helpful?