03/10/2021 - v3.5.20.7

03/10/2021 - v3.5.20.7

Updated Fields and Field Expressions

The purpose of these Fields and Field Expressions is to improve tracking metrics. Below is an example of the Packages Dashboard after the Fields and Field Expressions below have been applied.

{STRATUS.*.TrackingStatusLogBy}

This field returns the list of user names who made each tracking status change. See an example in the TrackingStatusChange() field expression example below.

DateOffset()

The DateOffset() function calculates a date-time based on the year, day, and hour offset. The DateTime returned can be used in other functions that expect a DateTime argument. See the Date Offset in the screen-shot above.

  1. Generic Syntax: DateOffset(DateTime, YearOffset, DayOffset, HourOffset) returns new DateTime

  2. Example will return a 1 or 0: TrackingStatusChange({STRATUS.Package.TrackingStatusLog},'Packaged',{STRATUS.Package.TrackingStatusLogDT},DateOffset(Now(),-1,-7,0),'',{STRATUS.Package.TrackingStatusLogBy},'Kelly Demo')

DayName()

The DayName() function returns the name of the day for the date. See the Day Name column in the screen-shot above.

Example: DayName({STRATUS.Package.TrackingStatusLogDT})

IndexOf() and LastIndexOf()

The IndexOf() and LastIndexOf() functions provide a way to manipulate strings within field expressions. See the Tracking to Packaged most recent change column in the screen-shot above.

  • IndexOf(String1,String2) - Returns the first character index of a search string within another string value or -1 if not found.

  • LastIndexOf(String1,String2) - Returns the last character index of a search string within another string value or -1 if not found.

Example

To display the date-time for the most recent tracking status change for a package in the Packages Dashboard, create a Field that contains the following Field Expression and then reference the field in a report:


If(LastIndexOf(';',{STRATUS.Package.TrackingStatusLogDT}) > -1, Right({STRATUS.Package.TrackingStatusLogDT}, AsNumber(Len({STRATUS.Package.TrackingStatusLogDT})) - LastIndexOf(';',{STRATUS.Package.TrackingStatusLogDT}) - 1), {STRATUS.Package.TrackingStatusLogDT})

TrackingStatusChange()

The TrackingStatusChange() function can provide report data that answers questions like “How may many feet of pipe cut are cut or spools welded per day, per week, per month?

This function returns a 0 or 1. As a result, it can be determined whether the tracking status has been applied, given the optional filters.  By returning a 0 or 1, it can be multiplied by whatever the desired metric unit is from the part (Ex. Diameter).  By building an integer Field with ‘Is Total’ checked and using an integer field in a package report, totals per package can be summarized.

The following is a list of generic function arguments that provide the following:

  • Tracking status applied

  • Timespan to filter (optional)

  • User to filter (optional)

Generic Syntax: TrackingStatusChange({STRATUS.*.TrackingStatusLog}, TrackingStatus, {STRATUS.*.TrackingStatusLogDT}, StartDT, EndDT, {STRATUS.*.TrackingStatusLogBy}, UserName)

Example

Below is an example of a Packages Dashboard report that uses the field expression that will display the total weld inches completed last week (in the last 7 days) by a specific weld station operator (Kelly Demo. 

TrackingStatusChange({STRATUS.Part.TrackingStatusLog},'Fabricated',{STRATUS.Part.TrackingStatusLogDT},DateOffset(Now(),0,-7,0),'',{STRATUS.Part.TrackingStatusLogBy},'Kelly Demo')*{Diameter}

Use Cases

There are 4 possible use cases, depending on optional arguments. See the corresponding Use Cases in the screen-shot above.

  1. Return 1 if TrackingStatus has ever been applied

    1. Generic Syntax: TrackingStatusChange({STRATUS.*.TrackingStatusLog}, TrackingStatus)

    2. Example: TrackingStatusChange({STRATUS.Package.TrackingStatusLog},'Packaged')

  2. Return 1 if TrackingStatus has been applied between StartDT and EndDT. Note: It is acceptable to provide only one of the date arguments, leaving out that date time-bound check.

    1. Generic Syntax: TrackingStatusChange({STRATUS.*.TrackingStatusLog}, TrackingStatus, {STRATUS.*.TrackingStatusLogDT}, StartDT, EndDT)

    2. Example: TrackingStatusChange({STRATUS.Package.TrackingStatusLog},'Packaged',{STRATUS.Package.TrackingStatusLogDT},'09/01/2020','09/30/2020')

  3. Return 1 if TrackingStatus has ever been applied by a particular station or user name.

    1. Generic Syntax: UserNameTrackingStatusChange({STRATUS.*.TrackingStatusLog}, TrackingStatus, '', '', '', {STRATUS.*.TrackingStatusLogBy}, UserName)

    2. Example: TrackingStatusChange({STRATUS.Package.TrackingStatusLog}, 'Packaged', '', '', '', '', {STRATUS.Package.TrackingStatusLogBy}, 'Kelly Demo')

  4. Returns 1 if TrackingStatus has been applied between StartDT and EndDT by UserName

    1. Generic Syntax: TrackingStatusChange({STRATUS.*.TrackingStatusLog}, TrackingStatus, {STRATUS.*.TrackingStatusLogDT}, StartDT, EndDT, {STRATUS.*.TrackingStatusLogBy}, UserName)

    2. Example: TrackingStatusChange({STRATUS.Package.TrackingStatusLog}, 'Packaged', {STRATUS.Package.TrackingStatusLogDT}, '09/01/20','09/30/20', {STRATUS.Package.TrackingStatusLogBy}, 'Kelly Demo')

Remove TimeZoneId from Expression Functions

When running reports based on the following Field Expression functions, the user's timezone will be used. As a result, the TimeZoneId field will not be needed and will be ignored if currently used.

  • HoursInTracking()

  • TrackingStatusChange()

Added Date and Time Report Fields

Added the Date and Time Report Fields which can be added to all report templates.

  1. Add one or more Date/Time Report Fields to a Template under Admin > Company > Templates.

     

  2. Date/Times similar to the following will display:

     

    1. STRATUS.Report.CurrentDate

    2. STRATUS.Report.CurrentDateLong

    3. STRATUS.Report.CurrentDateTime

    4. STRATUS.Report.CurrentTime

Added Project Description to Naming Conventions

Added Project Description to Default Values under Admin > Company > Naming and Numbering > Naming Conventions. Content for the Project Description can be found under Projects > Dashboard.

Added Holes to the MAJ file

Added holes to the MAJ file when straight duct has a branch attached. Holes were previously intentionally ignored. This fix calls the Revit API. For additional details, contact Autodesk.

Q & A

Q: Does this honor the "Dynamic holes" option in the Fabrication database?

A: Yes. This fix is only calling the Revit API. Check Develop Holes to cut holes or uncheck to ignore.

​Q: If the model came from AutoCAD/CADmep, are holes automatically "updated" if branches were moved?

A: Yes, the holes are added when the MAJ is created with the Revit API.

​Q: Does STRATUS merely take what was published or does its MAJ process handle fixing these out-of-place holes?

A: STRATUS does not fix any, but they will automatically be fixed.

Q: Can we add rules to when holes are/are not placed on parts?

A: No, STRATUS cannot control when holes are placed.

​Q: Can you dimension to holes?

A: No.

Fixed an Issue Populating Ancillary Data Into Report Fields

Fixed an issue populating a Report Fields with a STRATUS.Field.X where X is Ancillary data reference.

 






© Copyright 2022 GTP Services, LLC All rights reserved. | About | Contact