• Leverage Jupyter Notebook for Reporting on your BIM360/ACC Environment

    Leverage Jupyter Notebook for Reporting on your BIM360/ACC Environment

    Introduction

    Autodesk Construction Cloud (ACC) (see Figure 1) is a cloud-based application that allows design teams to manage their drawings and building models in a centralized way.  ACC has a well-defined Restful (REST) API interface that makes it easy to extract and report on all manner of operational information.  Using Python, Jupyter Notebook, and some ubiquitous Python libraries it is quite simple to create a customizable dashboard that can be leveraged on-demand by BIM Managers and IT Admins alike.

    Figure 1 – Autodesk Construction Cloud 

     

    What do you need?

    So what do we need to know in order to get started?  To prepare you will need access to Autodesk Construction Cloud, which I won’t cover here, and of course a Forge account that will allow you to setup and connect an application to your ACC hub.  You can find more information on setting up a forge application in this link.  Secondly, you will need to install Anaconda which is a powerful Python based data science platform that allows users to easily install and run a wide variety of Python libraries.  Once you install Anaconda, you will need to install a few libraries including the following:

    • requests –allows users to make HTTP calls to cloud services;
    • json – allows users to serialize the resulting Json to easily access attributes;
    • matplotlib – allows users to create rich data visualizations such as graphs (Matlab);
    • pandas – provides users with several useful data management tools; and
    • datetime plus dateutil – which allows us to easily perform date functions such as time zone conversion.

    You can find more information on installing Anaconda at this link.

    Finally, you will need to create a new Anaconda environment (see link) and install the libraries listed above along with Jupyter Notebook.  Jupyter Notebook can be installed from the Anaconda prompt with the following:

    (env) PS C:\user> conda install jupyter notebook

    Once Jupyter Notebook is installed you can simply type jupyter notebook at the command prompt and hit enter to open the console in a new browser window or tab. (see Figure 2)

    Figure 2 – Jupyter Notebook Starting Page

    The starting page provides access to all the notebooks in your development environment.

    One more thing before you get started, you will need to set up an application in Autodesk Forge.  You will then attach that application to your ACC instance so you can access the information through the REST API.  More instructions on setting this up can be found by following this link.

    Creating a Dashboard

    A dashboard is intended to be a simple graphical data-driven interface that provides a window into operational activities and events.  The dashboard must be two things

    1. simple to understand; and
    2. relevant

    Some thought should be given to what you want to report on but some examples are

    • drawing type distribution statistics which provide some insight into software usage; and
    • user role distribution statistics which provide insight into who is doing what.

    Once you have determined what you are going to report on, you can then start building your notebook.

    Building and Organizing Your Notebook

    Jupyter Notebook allows users to structure their code into cells which provides a way to step through your code.  This is very important for debugging as you can easily isolate sections of code which provides better code management.

    You can start by importing all relevant Python libraries. (see Figure 3)

    Figure 3 – Import Python libraries to extend the functionality of the core Python environment

     

    Once the correct libraries are imported to the Jupyter Notebook session you can start setting up the appropriate properties starting with the authorization call. (see Figure 4)

    Figure 4 – Parameters to be used for collecting authorization token

    These parameters are then used in an HTTP call using the request library to return the appropriate authorization token.  Note: you must set up the correct scope(s) to ensure the permissions you have when the REST API is called are adequate.  Some example scopes are as follows:

    • data:read
    • data:write
    • data:create

    However, there are many others, which you can find out more about by visiting this link.

    Collecting the Data

    Now you can collect the appropriate data for your dashboard.  To do this you will need to find the correct REST Endpoints.  Some of the endpoints used for this demonstration are:

    Using these endpoints, you can simply leverage the request Python library functions to retrieve the data

    • users = requests.get(url, data=data, headers=auth)

    The json Python library can be used to serialize the resulting “user” object for easy access to the data attributes.

    • json = json.loads(users.text)

    Now you can iterate through the json object and populate python lists to create a “data table” object.  Those data table objects can then be simply plugged into any number of data visualization objects such as a pandas dataframe or a Matlab graph.

    Visualizing the Dashboard

    So now you have the data to visualize, how do you get it into a dashboard?  Now you can leverage the final Python library of this demo, matlibplot.  This library allows users to plug the lists of data created above into several different graphical representations.  Figure 5 illustrates a set of graphic plots created with matlibplot (Matlab) as well as a data table produced from a pandas data frame.  You can see that these graphical data objects can be organized into a meaningful dashboard that can be reused and even shared with others in your organization.

    Figure 5 – Jupyter Notebook Dashboard with Data Frame Table

    Development and Sharing

    A brief word on sharing these dashboards throughout the organization and for tracking development of the notebooks.  It is very simple to publish these notebooks to a GitHub repository (see Figure 6) that will allow other users to access the notebooks as permitted.  GitHub can also track versions of the different notebooks to make it possible to go back in time to find previous code which makes it easier to do code trials.  You can also create different code branches that allow multiple developers to work on the notebooks simultaneously.

    To do this you will need to create a GitHub repository, load your notebooks to that repository and then clone the repository to your local machine.   Once you have the notebooks in a local repository, you can set the custom location for your notebooks to that repo by accessing the configuration file, typically located at C:\Users\<username>\.jupyter\jupyter_notebook_config.py and then updating the line that starts c.NotebookApp.notebook_dir = by adding the location of your notebook repo to the end.  This will ensure the start page shows your development repository.

    Figure 6 – Committing Jupyter Notebooks to GitHub

    There are a few ways that you can synchronize your notebook location to GitHub.  Of course, you can do it manually but accessing the repository from the web interface, or you can install GitBash (see Figure 7) for windows and perform the repository functions by command line or batch file.

    Figure 7 – GitBash for Windows

    Finally, you can create your own utility to do the synchronization in a more directed way.  There are a variety of Python libraries such as PyGithub or GitPython that can help create your own Jupyter Notebook to synchronize your notebooks with GitHub. (see Figure 8)

    Figure 8 – GitPython Python Library for working with GitHub

    Other Use Cases

    While the use of Jupyter Notebook and Python as tools to generate meaningful reports, there are many other uses that could be investigated.  I personally work with many clients to develop ETL (extract, transform, load) strategies to bring mission-critical data into their hosted and cloud environments.  Part of this process almost always requires some Python coding to perform tasks the OOB (out of the box) software cannot do.  I find Jupyter Notebook an extremely powerful IDE for doing code development, allowing me to perform debugging and quality control activities without a lot of software knowledge.  Additionally, Python can be used to access other cloud-based platforms with a REST API such as Fusion 360 Manage which is Autodesk’s primary PLM (product lifecycle management) platform.  Jupyter Notebook could be a way to report on content in this platform as well as extend the functionality to ensure implementations of these frameworks are successful.

    Conclusion

    BIM and IT managers are tasked with ensuring the efficient flow of data through their organizations’ design and engineering processes.  This requires easy access to any number of information products including usage, data, and role statistics.  Python can easily be accessed through the Jupyter Notebook interface and, in conjunction with the ACC REST API, provides a very useful tool for any BIM or IT manager to report on these items.

    The scripts can be created to be very flexible and easily shared, allowing users to pass their own information into the process and create rich dashboards for business and engineering analytics.  The ACC and BIM 360 APIs are very well documented so anyone with a bit of understanding of REST and Python can get started creating these products.  Together, these are very flexible and powerful frameworks for collecting data from cloud services and for reporting on current environmental conditions.

    AutoCAD 2023.1 Update

    Autodesk has released the 2023.1 updates.  Use the Desktop App to install it or download it from your Autodesk AccountClick here to find out what’s new.  Additionally, the 2023.0.1 update is also available.

    This release includes new and updated features, performance enhancements, and fixes for Autodesk® Civil 3D® 2023. It is strongly recommended that you read this entire document before installing.

    Note: AutoCAD 2023 Update 1 must be installed before Civil 3D 2023 Update 1. AutoCAD 2023 Update 1 cannot be uninstalled independently. To remove the update, you must reinstall Civil 2023.0.

    New Features

    Find out about the new and improved features in the Autodesk Civil 3D 2023.1 release.

    Fixed Issues

    Find out what issues have been fixed in Autodesk Civil 3D 2023.1.

    Known Issues

    Find out about known issues in Autodesk Civil 3D 2023.1.

    Installation

    Detailed installation information can be found in the Autodesk Civil 3D installation help topics.

    • It is recommended that you first install all Microsoft® Windows® updates prior to installing Autodesk Civil 3D 2023.1.
    • Please close all applications prior to installing Autodesk Civil 3D 2023.1.
    • Autodesk Civil 3D 2023.1 can be installed side-by-side with prior versions of Autodesk Civil 3D.
    • If your team works in a multi-seat stand-alone environment, you can repeat this basic installation process for each computer seat. Alternatively, an administrator can create a deployment.

    Civil 3D: Profile Grade Intersections

    The goal in this example is to design the profile where each grade is an even number.  It’s not as obvious as you might think.  Thanks to my colleagues Dave Hill and Jae Kwon for pointing out the proper tool.

    Read on to learn more…

    Begin by modelling the first 2 segments.  I’ll assume you know the best tools for this, but I’ll give you a hint.  Use the Grid View; it’s your friend here.

           

    To model the last 5% grade is not entirely obvious.  Yes, a 5% tangent can be drawn from the end of the 1% grade, but it doesn’t end in the right place.

    We sort of want to draw backwards from the end of the red profile and then extend the 1% grade.

    Use this tool and follow the prompts.  First select the 1% grade, then pick Station and Elevation and the tie-in point.  Then enter the grade, in this case -5% (the grade from the intersected PVI).

             

    C’est voilà.

     

     

     

    Civil 3D: Model Existing Underground Utilities Efficiently

    Civil 3D: Model Existing Underground Utilities Efficiently

    Must you draw existing gas, tel, and other similar underground utilities for your projects?  If you’re not using the technique described below, you’re using too much time!  Read on to find out more.

    Join us at Infrastructure University, session 3, on October 20th for more information about this technique. For now:

    Facts:

    1. For nearly every civil engineering project, we must identify existing features on our construction drawings so they may not be disturbed during construction and so we may design proposed works without conflicting with these existing features. They must appear in both plan and profile.
    2. It can take considerable time to draw and label them in the plan, and even more project them into profile.
    3. When there is an edit to the alignment, the profile locations must be recalculated, taking more time.
    4. Experiments have shown that it can take 84 seconds to draw each utility. Then 26 more seconds each when the alignment is edited.
    5. Using the technique described below, the time is reduced from 84 seconds to 20 seconds. But 0 seconds when the alignment is edited.
    6. For 160 utilities:
      1. 3.7 hours using the manual technique.                   69 minutes each time the alignment is edited.
      2. 53 minutes using the automated technique.         No extra time when the alignment is edited.

    Method

    1. Create pressure network parts lists, one for each utility. Assign styles accordingly.
    2. Create pressure networks, one for each utility. Assign the parts list and label styles accordingly.
    3. Model the existing utilities as pressure networks and project them into profile. The depth below ground can be automated.

    Civil 3D: Pipes not Extending to Structures

    Have you seen this before?  This is how Civil 3D’s pipes sometimes appear before and after the current annotation scale has been changed.  Not good.

    Read on to learn more…

    What is the cause?  This setting in the structure style.  You will find it in the Plan tab in the style editor.

    How to fix this?  There are several methods.

    • Never change the scale!  Easy to say, not so easy to implement.
    • Turn off that setting.  Problem is, you get this.

    • Swap each structure.  Choose the same structure.  What if there are 200 of them?  Too much time.

    • Grip-edit each structure and move them back onto their original positions.  Same problem as previous, too much time.
    • Add a wipeout to the block being used AND turn off that setting.  Our first real potential solution.  Some users report black blobs when printing to PDF when using wipeouts, however.
    • Use Project Explorer.  Select all the structures, right click, and choose the following option.  Then just click OK.  This kicks the structures in the butt and the pipes extend themselves properly.  Of course, next time the scale is changed, this must be redone but this only takes about 5 seconds.

    I prefer the wipeout option because it is permanent.  No other workarounds necessary.  If this is not an option for you, then the Project Explorer trick is likely the best option.

    Civil 3D: Alignment Creation – Free Entities

    Alignments are created in Civil 3D by selecting AutoCAD objects or by using specialized tools.  Sometimes selecting objects is appropriate, but when the alignment is required to be very flexible in terms of editability, utilizing those specialized tools can be critical.

     

    There are three types of Alignment segments present within those specialized tools: Fixed, Floating, and Free.  The use of these tools is not always obvious, so we have created 3 video which explains the use of them.

     

    The last of the three videos, Free Entities, can be viewed at this link or below.

    Civil 3D: Alignment Creation – Floating Entities

    Alignments are created in Civil 3D by selecting AutoCAD objects or by using specialized tools.  Sometimes selecting objects is appropriate, but when the alignment is required to be very flexible in terms of editability, utilizing those specialized tools can be critical.

     

    There are three types of Alignment segments present within those specialized tools: Fixed, Floating, and Free.  The use of these tools is not always obvious, so we have created 3 video which explains the use of them.

     

    The second of the three videos, Floating Entities, can be viewed at this link or below. Come back in a week or two for the next video.

     

    HOW OUR AEC E-LEARNING SOLUTION IMPROVES EMPLOYEE RETENTION

    This story was originally published by 

    AN AEC E-LEARNING SOLUTION CAN MAKE ALL THE DIFFERENCE FOR YOUR EMPLOYEES.

    Employee retention is one of the biggest ongoing goals for successful companies. Improving retention allows you to keep your top performers, promote from within, and avoid the time and cost of replacing staff.

    recent survey from The Harris Poll found that 70% of employees would likely leave their current organization if its training and development offerings weren’t up to par.

    Let’s explore how our AEC e-learning solution, Pinnacle Series, can help deliver the development employees are looking for and improve retention at your architecture, engineering, construction, or manufacturing organization.

    1. Promotes lifelong learning
    2. Makes workflows more efficient
    3. Personalizes training
    4. Empowers their career goals

    PROMOTES LIFELONG LEARNING

    Learning helps us grow and achieve goals throughout our lives and careers. But often, employees feel like they’re growing stagnant. If you provide the opportunity for them to learn new skills on their own terms, you’ll build the kind of culture that encourages growth.

    MAKES WORKFLOWS MORE EFFICIENT

    Pinnacle Series is full of training videos, documents, and other resources employees can use to improve their skills at dozens of important AEC programs e.g., software skills, company guidelines, health and safety knowledge, and more. And they can do it the minute they need answers, for instance, in the middle of a project. Instead of interrupting a co-worker, they can hop onto Pinnacle Series, watch a quick how-to video, and get back to work with confidence.

    PERSONALIZES TRAINING

    Employees often don’t benefit from a one-size-fits-all course enrollment or seminar that doesn’t fit their individual needs. They feel it’s a waste of their time. In addition, it can be labor-intensive for managers to figure out the required training needs for every employee, especially within larger organizations. With Pinnacle Series, the concept of personalized learning is built in. Users can take KnowledgeSmart assessments to generate a custom learning plan that fills their skills gaps without repeating information they already know.

    EMPOWERS THEIR CAREER GOALS

    By equipping your employees with new skills to move forward in their careers, you’re helping them and your organization. You can invest in and promote from within.

    Want to see for yourself how our AEC e-learning solution can help your organization? Schedule a demo or free trial of Pinnacle Series today!

    Are you a current Pinnacle Series customer? Log in now or connect with your Customer Success Manager to see how you can leverage our platform in your employee retention efforts.

    Autodesk Desktop Connector Update

    Autodesk Desktop Connector 

    Autodesk regularly updates the Desktop Connector with fixes to defects and some basic functionality updates; this update is no different, but there is one major feature update which has been on users’ wish lists for a while.

    Users can now change the location of the Workspace to another fixed drive location. This will be very welcome to many IT departments. Formerly, the Desktop Connector would only save to the user’s local C Drive. Many users’ C Drives are not large enough to accommodate the added load of storing files locally when using the Autodesk Construction Cloud. IT can install larger file drives onto users’ computers since the Desktop Connector can now store files on a drive other than C. 

    Click here to see the documentation and to download it.

    Enjoy!

     

     

    Civil 3D Assemblies: Tool Palette or Block Library?

    Civil 3D Assemblies: Tool Palette or Block Library?

    Civil 3D comes shipped with pre-configured assemblies that may or nay not fit your needs.  We created another BLOG post here to show how to create your own and share them with others in your team.  There is another way…read on.

    The Cole’s notes are:

    • Make a new drawing.
    • Create your assembly in this new drawing placed at 0,0.
    • Insert that drawing into your design and explode the resulting block.

    In the linked article above, we suggested creating a tool palette.  This works well for blocks so they may be placed on the correct layers.  For assemblies, since this block will be exploded, this is not a requirement.  Might there be an easier way?  There is.  You see, tool palettes require a little maintenance.  The trick below does not.

    AutoCAD’s Block Library

    In Civil 3D 2022 or later, open the new block palette introduced in version 2020.  The option I’m about to illustrate is not available with 2020 or 2021.  You will see two things: a Library tab (red) and a button to select a folder (blue).  Clicking the folder button will prompt you to select a folder containing drawings.  If each of those drawings is an individual assembly, your job is done.  Drag and drop one of those into your drawing and ensure it is exploded.  You’ve just inserted an assembly.

    No maintenance is required.  Just save a new drawing with a new assembly into that folder and the next time AutoCAD is started, you’ll see the new content.  If you prefer to have all assembly blocks defined in a single drawing, that’s fine too, simply right click the drawing and choose…

    Enjoy!