6 Replies Latest reply on Jul 13, 2015 3:43 PM by valdas adamkus

    How to increment revision only when the file is renewed?

    valdas adamkus

      Hello,

      I've been working on this issue, and can not figure it out. I have also read this thread:

      How to increment Revision only if version of files change?

       

      And this brings me a confusion of the complexity to achieving this goal ...

       

      Say I have a unit consisting of a few dozens of subassemblies. All unit consists of a few dozen of thousands of parts. Now I open a small subassembly, edit it, save it, and check in the model of full unit. New version numbers will be given only to the updated parts in this small subassembly, and also the main unit, because this main unit is also changed due to changes in the mentioned subassembly.

       

      Now the new revision of the full unit has to be released because of the changes. A standard workflow would give a new revision to every subassembly and part that unit. And then the manufacturing department would go crazy, because they would have to update everything, even though no real changes were ever made.

       

      I am absolutely certain there must be a way to give a new revision number only to the files with a different version number than the previous revision. I can not imagine manufacturing in another way ... Otherwise a small change in a minor subassembly would require to update all drawings of the full unit, DXFs for laser machines, everything ... This just can not be possible

       

      So how should the revision be given to only these documents which have different version than the previous revision?

       

      Thank you for your advice

        • Re: How to increment revision only when the file is renewed?
          Jim Stone

          As was mentioned in the other thread, in most instances you would only put the models and drawings that are changing into the workflow, therefore they would be the only ones getting a new revision. The workflow is for making changes, so there's no reason to put non-changing files into the workflow.

           

          In your example, you would put the small subassembly into the workflow to make the required changes. If this subassembly reports directly to the top level, then you may or may not have to change it, as well, depending on standard interchangeability rules for revision control. But if you do change it, you only want to put the top level itself into the workflow - not the entire product below it! The top level and the subassembly are changing, so they go through workflow. Nothing else has to. See Tim Webb's last response at the end of the other thread, showing the group settings. It's a lot safer and easier if the user manually selects the required files rather than having EPDM automatically select everything. Depending on your file naming convention, there are ways to easily select only the required files, even from a list of files in a large assembly.

            • Re: How to increment revision only when the file is renewed?
              valdas adamkus

              Jim, thank you for your advice. Though I must not totally agree with you.

               

              Lets say my task is to edit a relatively small subassembly of a project. Firstly, I check out all this subassembly, so that nobody else can edit it. Imagine I work on it for a couple of days to make a "New design intent", then I get a confirmation from my supervisor, and then I spend another week for actually implementing all the desired changes. I add, delete, rename parts/assemblies as they move in/out of my new subassemblies, and I end up with my new final version, which has approximately half of the parts changed. I have no chance to remember if I changed a part or not (say I edited 40 parts of 100, and added 20 new), especially if there is a minor change, say one thread of an old part has been changed from M8 to M10. So I want to give a new revision to this newly designed sub project (subassembly) of mine, but I certainly do not want to give new revisions to unchanged files. The condition is simple: if previous revision has the same version as current version, do not change the revision.

               

              At least this is a standard workflow at our company at the moment. I used to work with WGPDM, it automatically found and checked "ticks" on for the parts which have changed. And now it looks like a natural procedure for me. In WGPDM you have to MANUALLY CHECK the unchanged components in order to make them get a new revision. While in EPDM you have to MANUALLY UNCHECK all the components if you don't want a new revision for them. For me, this is strange.

               

              Of course, the best would be if people would remember everything perfectly, but with this new implementation I want to make sure that an engineer can not assign a new revision if nothing was changed. Otherwise manufacturing will have to make new DXFs for lasering, new programs for CNC etc.

               

              Now I am thinking what can be done to achieve that. Below is our workflow, I have changed names to numbers for easier understanding as they are in my language. Here it is:

              workflow.jpg

               

              My first idea was this:

              creating two variables:

              "Current version number" and "New version number" (both integers)

              Then :

               

              on "4": add action "Set variable" of "Current version number" to the value of %version%

              on "6": add action "Set variable" of "New version number" to the value of %version%

              on "6": check if "New version number" is higher than "Current version number

               

              The two problems are:

              First: on "6" I have to do both: check if "New revision number" "Number bigger than" "Current revision number". I don't think it is possible.

              Second: the "Value" of conditional comparison can not be set to variable, it mast be a static value. This means I can not compare two variables.

               

              Because of these problems, I don't think it is possible to achieve it in that way.

               

              So, my current idea is:

              I think I will have to create a task for this. This task will be executed on every "Check-in" and will compare the versions. In case the newly checked-in version is higher than the one with the current revision, the task will set the variable "Need revision increase" to "True". Otherwise it will be false. And then, the transition state 6 will only check the variable "Need revision increase" for deciding if the new revision should be assigned, or not.

               

              Unfortunately, I have never wrote an EPDM task, and I am in short of time these days for this. I think I will have to postpone it for a weak or two, unless I find a very similar example, which I could use for this with minor changes.

               

              Your comments on this idea are very welcome as I am a new user of EPDM.

                • Re: How to increment revision only when the file is renewed?
                  Jim Stone

                  Valdus,

                   

                  Do you have a Doc Control function at your company and are your designs ECO-controlled? From a control standpoint, I'm having a hard time understanding your methodology. While there will be variations, I think most companies with a control system would operate similar to ours - when designs are in released state they need an ECO or ER number to put them into a WIP state to work on. The end result of that workflow is a new revision when it returns to a released state. And you would only put parts that are changing into the workflow so only those that are changing would come out (and have a new revision). In our case, only Doc Control can put production released files into a WIP state, which requires a request that references an ECO. If a file's left in WIP, I can trace back and see when, why and for who the file was placed in WIP, and figure out what to do with it.

                   

                  One stumbling point is how to do the exploratory work, when you don't know what will change yet. Depending on the particular issue, and to some extent the engineer working on it, there are a couple of ways we deal with it here. You can start with parts you know are going to change and add more as they are identified. Or sometimes they'll pack-and-go an assembly to a local folder and play around there. The problem there is that they're working outside the vault, which is never encouraged, and usually the work will have to be done over again with the "real" files in the vault.

                   

                  If I read your post correctly, you'll put an entire assembly into WIP just to place a hold on it and play around with the designs. Since you've got them all in the workflow, they all want to get a new revision. You have to either push them forward for a revision or roll them back to avoid it. I think you want to be able to put the whole thing in WIP, play with it and hope that EPDM can figure out which files changed and that's not how it's intended to work (and not very controlled). Workflows are more structured and linear than that. What goes in must come out - with a revision, typically. You'd have to create another transition that puts files back in the released state, but that would be a pain and could be dangerous - what if you accidentally put back something that had changed? I still advise only putting files that will change into WIP; the same parts that will be listed on the ECO.

                   

                  Or am I just not understanding the question? Anyone else have some suggestions?

                    • Re: How to increment revision only when the file is renewed?
                      valdas adamkus

                      Jim, thank you again for such detailed share of ideas. I will do my best to explain my intentions.

                       

                      To begin with, I represent a really small company, having 2 to 4 engineers, and a supervisor. We all sit in one room, so there is no need for a complicated workflow in EPDM.

                       

                      No, we do not have Doc Control, as a special system. We just have a set of files of problems that were noticed in our production, with photos and descriptions.

                       

                      As for ECO control: firstly, in case of a problem, we receive a problem description from a customer. Then all the engineers and a supervisor - we discuss what we shall do about it. Then, we edit the model in SW. When everything is done, we ask supervisor to sit by a computer of an engineer, discuss everything and get a confirmation of design. Therefore, engineers are entitled to move the files from "Approved revision" to "Work in progress" and back to EPDM without a confirmation from supervisor (confirmation is done by saying it is ok). It is mostly the responsibility of an engineer to make things correctly. Therefore we do not need our supervisor to initiate the "Start of design edit progress", as well as confirm it by "Approval" processes - engineers can do it on their own.

                       

                      The size of our team dictates this to be an easier way to go, and effective enough.

                       

                      You offered to check out only the parts that are going to be edited. As this is new to me, as I come from WGPDM to EPDM, this might work...

                      Of course, there is no chance we will know which parts will change in the beginning of ECO.

                       

                       

                      This is out current working timeline:

                      Say this one subassembly of our standard project:

                      FULL UNIT

                      -->SUB unit01

                      ------>Subassembly01.01

                      ------------->SubSubassembly01.01.01

                       

                      And say we have a problems with bearings in 01.01.01. Therefore I checkout 01.01.01, change the bearings to stronger. Then I must change the shaft. Then I must change the flange/coupling between the engine and the shaft. Then, as it appears, the bigger coupling is too big. Therefore I must cut a hole in the cover to move the motor backwards, and design a new subcover.

                       

                      So, I edit the 01.01.01 and all of it's components, and give a new revision to this SubSubassembly, and all the newly changed components. But, in case I check out a little bracket together with all the subassembly, which didn't change - I don't need to give it a new revision. Therefore I want this revision to stay the same (I want to check if previous revision had the same version, and if it did - the revision to not increment. The way of achieving this goal is the purpose of this forum thread).

                       

                      //end of current working timeline

                       

                      Most of engineers in this forum, including you, are probably used to way more complicated workflows, because it is inevitable in larger teams. Bet this workflow appears to work best in our case. But, within the possibilities of EPDM (it is still in "Beta" in our company, we are only testing strategies, and not using it for production yet), I am starting to think that checking out only the parts that are going to change might be a better idea.

                       

                       

                                     Jim Stone:

                      One stumbling point is how to do the exploratory work, when you don't know what will change yet. Depending on the particular issue, and to some extent the engineer working on it, there are a couple of ways we deal with it here. You can start with parts you know are going to change and add more as they are identified. Or sometimes they'll pack-and-go an assembly to a local folder and play around there. The problem there is that they're working outside the vault, which is never encouraged, and usually the work will have to be done over again with the "real" files in the vault.

                       

                      Checking out part by part is a possible way, I think it is worth considering. It is different from our day to day work, but I will talk to my colleagues about it. Would you please share more your experience about this method? Does it have any advantages/disadvantages compared to other working strategies? Are there situations that another strategy would fit better, based on your (or other engineers who would join this thread)?

                       

                      Pack and go to local folder is too much complicated. Imagine I edit 40 parts, and add 20 during a week on that project. I might take 4 to 8 hours to place the new parts back into the original assembly. Or, if they are edited parts, then I don't think you can bring back in to assembly, and make EPDM "understand" this is still an old part, revision flow of which should continue. This "Pack and go" part should have a different internal ID and revision continuation should be impossible. So it has to be redesigned over an existing part. No, I don't think this can be a solution.

                                     Jim Stone:

                      If I read your post correctly, you'll put an entire assembly into WIP just to place a hold on it and play around with the designs. Since you've got them all in the workflow, they all want to get a new revision. You have to either push them forward for a revision or roll them back to avoid it. I think you want to be able to put the whole thing in WIP, play with it and hope that EPDM can figure out which files changed and that's not how it's intended to work (and not very controlled). Workflows are more structured and linear than that. What goes in must come out - with a revision, typically. You'd have to create another transition that puts files back in the released state, but that would be a pain and could be dangerous - what if you accidentally put back something that had changed? I still advise only putting files that will change into WIP; the same parts that will be listed on the ECO.

                       

                      No, up until now I check out the SubSubassembly 01.01.01, this is a habit based on WGPDM. Checking out part by part in there was too complicated. After thinking about your suggestion of putting only the files that will certainly change, it might be a good solution, as it is way easier to do with EPDM. At the moment I think we will try to work by in this way.

                       

                      I will consider this idea briefly and talk to colleagues, I think it can work... Thank you!

                    • Re: How to increment revision only when the file is renewed?
                      Jim Sculley

                      valdas adamkus:

                       

                      Jim, thank you for your advice. Though I must not totally agree with you.

                       

                      Lets say my task is to edit a relatively small subassembly of a project. Firstly, I check out all this subassembly, so that nobody else can edit it.

                      You should only check out the assembly file.  Not all of its children.  And you don't check files out so that others can't edit them.  You check files out so that you can edit them.  If you don't plan to change a file, don't check it out.  Ideally, you can't change a file in an existing assembly unless you move it to a state where changes are allowed.  This also gives you an easy method to keep track of what has changed.  Just search for files in the state that allows changes and search for transitions made by you.  When you are finished with your changes, you transition any existing the parts that were changed back to their original state and their revisions (not versions) can be incremented.  Any new parts can be transitioned as well, and they will receive the required initial revision number.

                       

                      You don't need tasks, or version number variables.  You need to use the EPDM Revision Numbers correctly and design a workflow that uses them.

                       

                      Jim S.

                        • Re: How to increment revision only when the file is renewed?
                          valdas adamkus

                          Jim Sculley, thank you for your input. You have approved and expanded the opinion of Mr. Jim Stone. The timeline of a workflow you suggested is logical, and my previous experience with WGPDM directed me to think about another strategy. I will discuss this solution you both offered with my colleagues, but I think we will probably end up using this method. Your suggestion to use search for easing up check-in and revision increment is very useful. Thank you very much for detailed explanation !