Description
Principaux enseignements
- Identify the power of Dynamo scripts in Civil3D and Revit for Catenary, CCTV, Tunnels prefabricated concrete voussoirs in Railway projects & convert them to Plugins with PyRevit.
- Create complex parametric families and integrate information to produce detailed list of materials.
- Identify the best design workflows and use IFC Interpretability between Civil3D and Revit.
Intervenant
- ASAyman SALEHWith over 15 years of experience in design, construction, automation, development, and training across various global companies—including Egypt, Qatar, Morocco, Philippines, Italy, and France—I currently serve as the BIM R&D Manager at Colas Rail France. In this role, I am responsible for design automation and defining BIM workflows and processes for different departments within Colas Rail on an international scale. I have developed numerous scripts and plugins to enhance the design process, ensuring greater accuracy and quality in less time. During our session, I'll showcase some examples of my work. Looking forward to meeting you there!
AYMAN SALEH: Hello, everyone. I'll speak today in this session about the Railway Design Automation with Dynamo. We will go through the design automation for some systems related to the railway projects. A little about myself, I'm Ayman Saleh, I'm an electrical engineer. I'm having more than 15 years of experience in design, construction, automation, development and training in different countries, including Egypt, Qatar, Morocco, Philippines, Italy and France.
And I'm currently serving as a BIM research and development manager at Colas Rail, France. And in this role, I'm responsible for the design automation, automation, and defining BIM workflows and processes for different departments within Colas Rail. On an international scale, and I have developed several plugins which I will show you today some examples of my work.
So this is our agenda. First, we have an introduction and short story. Then we will go through some systems workflow for the automation, like the Catenary design automation, which is the biggest subject we will speak about today. We have subjects under this main topic, which are the Dynamo scripts and the workflow for the Catenary, and the IFC 4.3 between the Civil 3D and Revit and how to convert the Dynamo scripts to Plugins and complex Revit families and the material take off, MTO Another system, which is a CCTV is a camera retrovision design automation. And the last examples are the tunnels ring segment and the trackwork design automation. So let's start.
For the introduction. Who is Colas Rail? Colas Rail is awarded world leader in railway infrastructures. We are an expert in construction and maintenance and multi-profile integrator. We are grouped with Bouygues and Colas. We have more than 4,000 sites per year, 70,000km of tracks in more than 24 countries. We have 6,000 employees in the world and we have 12 area of expertise.
This is an idea about our area of expertise. We have catenary distribution substations, tracks, training, rolling stock and maintenance, electromechanical and safety equipment, railway safety, vehicle, railway signaling, infrastructure management, low voltage and telecom and civil engineering. When was Colas Rail created, actually, there is a company called Société Des Batignolles. It's created at 1846. And there is another company at 1900 and the Aerobus merged in 1968. And Colas Rail purchased Spie Rail at 2008.
On the other side, we have another company called Seco and Colas Rail also purchased Seco and it merged Spie Rail and Seco to create Colas Rail at 2008. The group, we can call us the turnover, we have 55 million for Bouygues and 16 euros billion for Colas. And as I told you, some other company we have sub companies, Colas, and under Colas we have Colas Rail responsible for the railway projects.
And here is the turnover of Colas Rail, 1.3 billion turnover over 6 geographical areas. And according to the right, the percentage for each area. This is where we are for more than 40 years. We are established in 24 countries in the four continents. And this is a map of Australia. And one thing I want to highlight that the innovation is in Colas Rail's DNA. We have several platforms for innovation in our company on an international scale that serve for helping ideas to come through and to be implemented. And these are our customers, current clients and the major project clients. So this was a brief about Colas Rail.
Before I start my presentation, I just want to tell you a short story and it's beginning with this quote, "Building a business is knowing how to do something. And being proud is to create something that will make a real difference in other people's lives." This quote reminded me of something I'm proud of that I have learned in the past. Actually, I have joined Colas Rail in 2018, Colas Rail, Egypt. And I've been working there for four years.
And when I started working, there were no BIM department. And I was having a strong background and experience in the BIM. So I tried to convince the management to make the transition to BIM, to train as the team. And finally, we got the approval and started training the team, and we start implementing the process for more than 40% design and construction.
But the problem that we changed the 2D drawing method that we were working before, and we are starting the training, as I said. And then the problem that we find the resistance to change. A lot of people, that of managers that are not able to be comfortable with the new process. And they wanted to keep the old method. So I was thinking how to convince them to understand the power of the BIM and to collaborate all together.
So it came to my mind the Dynamo. As I was having a good experience in the Dynamo, I decided to automate some tasks as an electrical engineer. I was at this time responsible for the power supply department, the technical manager and I know all the rules, the steps for the design. So I integrated the formula and the rules of the electrical design inside the Dynamo script, so by this we can automate a lot of tasks that were taking a lot of time by engineers.
For those who do not Dynamo, Dynamo is a visual programming tool. When you open the Dynamo interface on the left side, you can find the search bar for searching for nodes. You just need to type the function name, or you can browse through the filter and then you just click on the node and it will be added to your workspace. And to create a Dynamo script or a Dynamo block, you just need to put the nodes as a bottom right photo and just connect the wires from the output to the input to do another function. And then you can preview the result.
And this small example of the three nodes is giving you a result for the number of rooms in a project, and you need to think analytically, in an analytical way, so for example, what are your inputs? What are your outputs? And then you try to do the function between to achieve your required output.
And by this, we are able to automate a lot of things, as we said, like creation of cable list, creation of circuit breakers, a lot of different tasks that were taking a lot of time. And by automation, it became very quick and more accurate. And then I will transfer to Colas Rail France as a research and development manager, as I said. And these are some examples that have been developed in France for the automation of the railway system.
So the first example is the catenary system design automation. And this development is done also in the framework of Minerve project. The Minerve project is a research and development project financed by the government of France, and we have a lot of participants in this project. So I will leave you with this video and then I will come back.
[VIDEO PLAYBACK]
[MUSIC PLAYING]
[END PLAYBACK]
AYMAN SALEH: So this was an example for the output of the tool that I have developed for the catenary. You can see the plug-in features for this tool, what it's doing, it's creating the 3D parametric masks and wires for the catenary. It's creating the dropper wires as per the database from [INAUDIBLE]. It's creating sections with dimensions and layout, with parametric annotations, creating a list of material for components of each mast, and another detailed list of material of the subcomponents. So each component has screw nuts and so on. And we are having the same features for the catenary system inside the tunnel.
So for the workflow here, we have four steps. You can see the first step is first Dynamo in the Civil 3D, which is inserting cogo points inside the Civil 3D according to the alignment. Just we need to input some data in the Dynamo and then like the span, the offset and then it's inserting the cogo points. And then the electrical engineer can move these points manually If you need any modification required for each must.
Then we go to the second step, a second Dynamo script in the Civil 3D which is exporting an Excel sheet with the coordinates data for these points and then some other data that need to be filled in the Excel sheet manually by the engineer. And then the third script in the Civil 3D is taking the field data by the engineer in the second step, comparing it to the database to add additional data. And it's creating solid objects with some property sets.
And then we go to Revit by exporting IFC 4.3 and importing it inside the Revit. And we run the final plug-in the final script, which is doing most of the work, which is creating the 3D parametric masks and the wire and the section with dimension and the detailed list of material. So this was a brief about the workflow. And I'm to go into details step by step.
So the first step, as we said, is just to fill some inputs in the first script, in the Civil 3D, like selecting the alignment, putting the span that we want between each mask, putting the offset from the alignment positive or negative, if it's right or left, and so on. And then the script will create the points for each masked location.
So at the left photo, these are the input, the track alignment and the civil work. And at the right photo after running the Dynamo, it has inserted these cogo points. Then the second step, which is Dynamo, the second Dynamo in the Civil 3D, we run the Dynamo. It export an Excel sheet on the left photo. We find that the part in green, these are the data exported by the script and the part-- and the yellow part is the part that need to be filled by the engineer, like what is the type of the foundations, the type of the mast, some technical data.
So the right photo is after the engineer has filled this data. Then we go to the third step. What is the third step? It's a Dynamo script also in the Civil 3D. What it's doing is taking the field data by the engineer and comparing it with a database that already in another Excel sheet and adding additional data. So let's say, for example, in the field data, there is a mast with the type HE 840, so the script extract this information and go to the database and search for this type of mast, HE 840.
We have length, width, height, depth and so on. So it takes this data and puts it in the same Excel sheet on the right photo in the blue part. So the Excel sheet has additional data depending on the field data by the engineer. In the same time, the third script is doing another task, which is creating solid objects for the top level of the foundation and storing data inside these objects as a property set from the Excel sheet.
So now we have finished our three steps. We need to go to Revit and here comes the interoperability between the IFC 4.3 between the Civil 3D and Revit using IFC 4.3. So first there is a problem that arrives, which is the geolocation, when we import the Civil 3D, export the Civil 3D to IFC and import it in Revit, we have a problem in the location is very far. And so on so we solve this point by setting the project base point inside the Civil 3D.
And before importing in Revit, we modify the same base point in the Revit, so we are having the same project base point. So it's inserted correctly. So we export the IFC and it's including all the metadata and the solid objects for the foundation and math that was done by the step number three. And then we imported inside the Revit.
And here comes the interesting part, the last step, which is Dynamo number four. Actually, it's a Dynamo, but it's converted to a plugin. We'll explain this later. So this is doing what? It's creating the 3D parametric mast and foundations, creating the contact messenger rocker wires, creating section view with dimensions for each mast automatically, creating parametric annotation and layout, the plan view and creating detailed list of material for component and subcomponent.
So for example, here we have the Revit plugin user interface. We just filled the Excel sheet and the database for the droppers and the wire size, and then it will create the 3D parametric mast and the output wires and the layout, as we said with the annotation, this is an example, sections with dimension for each mast and sheets to insert this.
So one of the most complicated parts that the challenges that we face during this development was the droppers. The droppers, as you can see on the upper right photo, the droppers are the vertical wires between the upper and the lower wire. So each dropper has a certain height, Z, the length of the vertical dropper. And the edge is a distance between each dropper. And these values is depending on the span, the span is the distance between each mast.
So we have a database and the script is doing what? It's checking the actual span between each mast, and then it's going to the database at the photo at the bottom right, and checking the span. So in case, he finds a span, 63 meter between the two masts, then he will extract these values, the H and V in the schedule and will put it back and create the wires according to these values.
We have another feature, the list of material for the component. So for example, here, we can see the cantilever, the arm of the mast with a lot of components. And we have a list of material automatically created for each component. So for example, this catenary, number one, it has a left cantilever and right cantilever and we can see all the subcomponents and their description. We will take an example of one component, it says 222675. This one we will see how the subcomponent list of material is created.
So here, for example, this component to create one component like this, we need to have nine items. And it's automatically created in the Revit, the Revit schedule, thanks to the data inserted inside the parametric family for this mast. We come back to the cables and the wires, as I have explained. The messenger wire is the wire at the top. The contact wire is down and the dropper are the vertical wires between them.
And we have a full list of material for all the wires. And also we can have a detailed list of material for the wires between each mast. We can have a list of material for the droppers. So for example, the droppers, as we said, we have vertical different vertical lenses. So the first schedule is showing that, for example, if you have a dropper with a lens 1.177m, we have 64 piece. So this enabled the team on site, on the construction site to prepare and cut the wires for installation. And the lower cable is showing the arrangement of the dropper.
So between the mast number one and mast number two, the first dropper has 1.177, the second is shown and so on in the same sequence of installation. So it's helping a lot for construction. I will leave you with a video that's showing quickly the process. So here, for example, this is the same process that we were talking about. So as you can see, we are just importing a settings of project basepoint and importing the IFC that was exported by the Civil 3D.
And then we can see this is a case study from the metro of Abidjan. And these are the solid objects from the Civil 3D with data and IFC. And then we will just run the plugin. So here we have a tab and label and we click just on the button and it will open directly the user interface. We will choose the Excel sheet that we have filled the data and the other Excel sheet for the database of the troopers. And then we run the plugin and then here we are. We all have been created automatically the masts, the wires, and also you can see the sections with the dimensions for each masts.
So all the masts, we have 33 masts, we have 33 sections created, and also the parametric family of the annotation, if we change some value, you can see this arrow is moving up or down or in the two directions. So this is the way the deliverables need to be exported. These are an example for the list of material for the component for each mast or for the whole project. And also we have the list of material for the subcomponent.
So this example that we have demonstrated, we have the schedule that is showing the subcomponent for each mast or for the whole project. And also we have the cables, these features also, as we said, there is another case where we have two cantilevers and 2 times the same mast and we have two wires. So just defining in the Excel sheet, if we have an anchoring here or which is the case, and the script will automatically change the mast, same features also for the tunnel. In case of tunnel, we have the support and the BIM, instead of the cables and we have sections created for each support inside the tunnel. So this was a quick demonstration for the tool.
So now I have explained to you the features and the benefits for this plugin. So we will go now on how to convert the Dynamo scripts to Plugins with PyRevit. For example, here, you can see the Revit plugin with some drop down menus. And when you click on, the OCS, for example, we have a menu for OCS, which is the overhead catenary system, the pack, which is the catenary inside the tunnel, the Tramway, the SL, which is the high speed line, the trolley. And so these are different system and each system has subsystems. So we just click on OCS. We have a lot of subsystems, and we choose in which case, then it will open the user interface for us.
To do this how it's done, it's very easy. There is a plugin called Revit, thanks to the creator, [INAUDIBLE] who created this, it's existing on the GitHub, so anyone it's an open source plugin. So anyone can download it and you can find a lot of tutorials on the internet. You just need to rename your Dynamo scripts in a certain manner and put them in a certain folder structure in a certain path. And as per on the left photo, you can see the arrangement of the folders. It's the same arrangement that will appear inside the Revit plugin. So if you just search, you can find a lot of tutorials showing how to do this.
After that, we will go to another topic, which is the complex Revit family. These development have two main parts, the scripts and the Dynamo and the Revit parametric family. The Revit parametric family was a village, a very challenging part of this development. And in order to create a complex one, we need first to study the behavior and the mechanism of our object movements, and then to create reference lines for each moving part and create the dimensions and the relation between each reference line and connect it to parameters with formula to control the shape and the movement of this line. And then we host the components on site, each reference line, and then add the data to the nested families to this components for the material takeoff.
So here is a quick demo for this family. As you can see here, this is a family for the cantilever. The idea is that to do this family, we have more than 100 formula, 100 parameter with formulas taking care of all the connections. And if you just change some inputs parameter, it will change the shape of the arm and it will keep.
So here, for example, these are the reference lines, the first thing to create is to do the reference line as per the parts, then to start to add the dimensions and the relation between these reference line and connect them to parameters with formula. And then we start to host each component on its corresponding line as we have explained. And as you can see here, each component has its own reference line, which follow the movement. And then we add some reference plans for-- this is for the detection of the dimension for the script, which is heading inside the section. And this is the final view of the family.
So let's do a test together. So for example, we will change some parameter responsible for the input data. For example, this one will change the length of the arm on the left side. If you can see here, I just change this and the length of the arm now increased and it's keeping the connection at the screw and the nuts. So for example, we'll minimize it again.
So you can see on the left arm, it will now minimize. And you can see all the arm has the angle has been changed, the lens of the tube and everything is keeping the connection between it. The same part for the right hand lever. There are other parameters for the right hand lever. When we change this parameter, it will change the lens.
All these input parameters are inside the Excel sheet, if you remember. The engineer need to insert the value of this inputs, these parameters that I am changing now, you need to insert it inside the Excel based on their technical calculations, that [INAUDIBLE]. And then each mast will behave separately according to each case.
Now we will go to another part, which is the material takeoff, how it's created inside this family. So for the material take off, we have, as we said, two levels, the main level, the component and the subcomponent. So let's open one component, this one, and to add to that, as [INAUDIBLE] we just add some parameters inside this family for the description, for the material, and so on.
So these are the data that appears in the list of material for components. And then for the subcomponent, we have other nested family inside this one. For each subcomponent, if you remember, we have nine. So these are nine families. And actually this families is taking the data from this schedule, for example. But these families are empty families. There's nothing inside but just information, just parameter.
And we did this in order not to increase the size of the family. So here you can see, there is nothing inside. There is no 3D, just data information. So by this, we can have any amount of data that we want without increasing the size of the family and increasing the total size of the Revit project file.
Also for this information to appear, so we have information in the sub-nested family and the main family and the project. So to have all these levels of information to appear inside the project environment, we need to choose the shared option on the right here. So by clicking on this option for the component family, and also we do the same for the subcomponent family, we can see all the parameters of this nested families inside the project environment.
So here if you open the schedule, for example, inside the Revit, we can see the parameters of the main family, the component family, and the subcomponent family, all the levels that we have. And we can filter in the schedule as we want for the mast per person project.
So this was a quick brief for the catenary development. What is the advantage of the BIM CAT process? It's saving months of work with this workflow against the manual workflow. The parametric family with the catenary rules saves a lot of time against the mast arm cantilever when you created and do the modification manually. The Dynamo script for the insertion of the 3D mast and foundation saves a lot of time and effort and have more accuracy.
Imagine in the case of a track modification that the design need to be updated, so manual-- this automatic is very saving a lot. The sections with dimensions is a very good option also. Imagine that we have 1,000 mast in a project. We need to create 1,000 section and insert the dimension manually for each mast, the list of material also, and in case of any modification, it will be updated automatically.
So that was about the catenary. We go to another subject, which is the CCTV design automation. I will leave you with a video to show you the output. And then I will come back to you.
[VIDEO PLAYBACK]
[MUSIC PLAYING]
[TRAIN]
- [NON-ENGLISH SPEECH] Please mind the gap between the drain and the platform.
[NON-ENGLISH SPEECH]
[END PLAYBACK]
AYMAN SALEH: So as you saw in the previous video, this video was demonstrating the field of vision of camera, the idea that when we do the designs for the camera system, we for example, do as the camera will look on the right direction, the left direction, and we send this to the construction site. And when the construction site starts installing the camera, they never do the same setting for the camera during the design phase.
After installation, they need to see the actual view of the camera on the screen and then start to moving left and right to adapt it. So the plugin that we did is automatically creating a 3D view for each camera. So after we insert the camera in the project, we just move to the right, left and then the plugin will create a 3D view for this camera and then we can see the view. Yes, it need to go right, left, and then we adjust and we rerun the plugin.
It will update the 3D view that we settle down for what we want. We have so also another demonstration in the video for the train driver. So there is a screen that the train driver is looking at to see the camera, to see the persons on the platform before the train starts going out from the station to check if there is a risk, if there is any person very near to the train before it go out.
So this is demonstrating the size of the screen, how far it is, and if the vision is clear for the driver to select the screen and so on. So how it is done? First, we have created the camera parametric family and we have inserted it inside the project in the required location to monitor. Then we change the camera field of vision angle parameters like the tilt pan and so on.
We run the plugin, and as we said, the output are-- this plugin is doing three things. First, creating the 3D view for each camera field of vision, exporting an Excel sheet with all the settings and the angles for each camera. And also it's exporting JPG photos, files exported for each camera. So here, when we open the Revit, we have the family of this is also on the Metro of Abidjan, example on the same station.
So this camera, for example, this is a parametric camera. Then after we insert it inside the project, we can change this parameter. As you can see, the field of vision is moving, right, left. We change according to the location that we need to monitor, and also we can move the field of vision up and down. So we have the tilt angle, the pen angle. So here, down and up.
And after we settle down, all the angles that we have, we just run the plugin and it will start to create. So here, as you can see, there is no 3D view. Only the 3D view exists for this one. And then it's only-- we need to select the path that the Excel sheet and the JPG files will be exported and choose the detail of our 3D views that we want, if it's realistic, shaded and so on, and just run the plugin.
And here you can see it's tilting 5 views are successfully created. And inside the folder that we choose, we will find the Excel sheet that is exported and the photos, the JPG photos for each camera are in progress to be exported in the same folder. And after that, after we have four cameras and we demonstrate the driver, I, as in camera, and then we have this is the Excel sheet exported. And we have the 3D views inside the Revit, C1, C2, C3, C4 and the TD train driver.
So this was a quick brief so we can put it inside the sheets. And if we do some rendering to have more better photos like this, we can put it also inside the sheets. So this was about the CCTV part.
SPEAKER: So now we will speak about another subject, the tunnel ring segment design automation. Thanks to my colleague [INAUDIBLE] from the technical department in Paris who have created this workflow.
AYMAN SALEH: In the tunnel projects, we have concrete segments that are inserted in a ring. For example, we have seven segments for each ring, and each segment has a different sequence. For example, the ring consists of seven segments, and each segments has different profile.
So the script is inserting all the segments with the concrete ports along the alignment. And to do this, we need to create adaptive family for the forbidden area to drill and allowed area to drill. This is a very important subject for us because in the concrete segments we need to put supports for the cable tray, as you can see in this photo. And to drill, for the fixation of this supports, we have allowed area to drill and forbidden area to drill.
And the problem is that it's never ever the design is followed on site because when we are doing site design, we don't know exactly the places, and so on. So people on site, they take the design, but they try to adjust on site to avoid the forbidden area. By this, we can can have an easy class report to run a clash between the fixation and the forbidden area to drill and move it directly. So this helps a lot too-- for solving a lot of issues.
We need to create adoptive family for the forbidden segment to drill, the allowed area to support the fixation and then the plugin will automatically create this data. So here we can see the tunnel segments. And this is done with a script that is inserting all the segments automatically through an Excel sheet that is coming from the Civil 3D for the point, the same concept.
And then as we can see, the yellow part is a part that is allowed to drill and the gray part is the part that is forbidden to drill. And you can see here the first, this is an adoptive family for the forbidden area to drill for the gray part. And these are the seven segments inside the ring. And the second adoptive family is for the allowed area to drill. And this is for the support for the cable tray.
If we have left and right, and we have another family in case, we have only a right support or if we have a left support, and then another adoptive family for the fixation of the support. And then the script is assembling all of this inside the Revit project environment to create the tunnel for us. And as you can see, each segment starts-- the first segment is not having the same location of the seven positions as the other one. So this is defined in the Excel sheet to create the tunnel as required.
SPEAKER: Our last example today is the trackwork design automation. Thanks to our team from Israel, Philippines who have developed this workflow.
AYMAN SALEH: This tool is this script is creating the sleepers and the rail profile inside the Revit, so the Dynamo is automatically inserting the sleepers and the rails based on the data coming from Excel sheets from the Civil 3D, also like the other one. So here we have the plugin in the Revit, the [INAUDIBLE] rail, and then we have the track, and then we click on the sleepers and then we choose the Excel sheet for the data.
And we choose which family we want for the sleeper and we run and here we are. We can see the sleepers inserted inside our project. Then the next step is to run the tool for the rail, so it's just choosing the rail profile family. And then we choose the same sleeper family that we have choose early. And then we run the plugin, and after that it will create the rail for us, as you can see. So here, all the sleepers, all the rails are created depending on the alignment. So a script in the Civil 3D exporting an Excel sheet with the points from the alignment of the rail and automatically this Excel sheet in the tool we importing it to insert this data.
So here we come to the end of our example. The learning objectives that we have today is now we can see the power of Dynamo in design automation with examples in the Revit and the Civil 3D. We understand now some railway system design automation workflows using the Dynamo scripts like the catenary, the CCTV, the camera, the tunnel concrete voussoir or ring segments and the trackwork system and where to start if we want to do something for this automation of these systems.
We also have learned today is using the IFC 4.3 interoperability between the Civil 3D and the Revit and storing information inside objects and the geolocation issues we faced and challenges and how to solve it. We also learned how to convert Dynamo scripts to Revit plugins using the PyRevit. We have understand how to start creating complex Revit parametric families by the reference lines and starting the connections with dimensional formulas and so on, and how to add the information inside it for the automatic detailed list of material or material takeoff.
So now I have finished, if there is any question answers? And I thank you so much for watching my class. This QR code. You can find my contacts. And see you.
Downloads
Étiquettes
Produit | |
Secteurs d'activité | |
Thèmes |