Make a donut style charts in Revit with native geometry. Charts are data-driven, fully scalable and changeable. Workflow is easy to adopt for other chart types.
Recently, it came to my mind that it would be good to have a Dynamo workflow to generate the finished floors automatically. There are a few good scripts flying around to have this problem sorted in some way. Predominantly, I was interested in developing my unique approach to solving my specific needs. I was hoping to put as many automation as I can, to make the Dynamo script as flexible and as generic as possible.
I've seen projects with shiny, new code render into unmaintainable big balls of mud within 2-3 years. Multiple times. But regardless of whether it's the code base as a whole that's rotten, or whether it's just the UI and User Experience that needs a major overhaul: the question on rewrite vs refactoring will come up sooner or later. Based on years of experience, and a plethora of bad decisions cumulating into epic failures, I'll share my experience on how to have a code base that stays maintainable - even after years. After this talk, you'll have more insight into whether you should refactor or rewrite, and how to do it right from now on.
Recently, it came to my mind that it would be good to have a Dynamo workflow to generate the finished floors automatically. There are a few good scripts flying around to have this problem sorted in some way. Predominantly, I was interested in developing my unique approach to solving my specific needs. I was hoping to put as many automation as I can, to make the Dynamo script as flexible and as generic as possible.
I've seen projects with shiny, new code render into unmaintainable big balls of mud within 2-3 years. Multiple times. But regardless of whether it's the code base as a whole that's rotten, or whether it's just the UI and User Experience that needs a major overhaul: the question on rewrite vs refactoring will come up sooner or later. Based on years of experience, and a plethora of bad decisions cumulating into epic failures, I'll share my experience on how to have a code base that stays maintainable - even after years. After this talk, you'll have more insight into whether you should refactor or rewrite, and how to do it right from now on.
I've seen projects with shiny, new code render into unmaintainable big balls of mud within 2-3 years. Multiple times. But regardless of whether it's the code base as a whole that's rotten, or whether it's just the UI and User Experience that needs a major overhaul: the question on rewrite vs refactoring will come up sooner or later. Based on years of experience, and a plethora of bad decisions cumulating into epic failures, I'll share my experience on how to have a code base that stays maintainable - even after years. After this talk, you'll have more insight into whether you should refactor or rewrite, and how to do it right from now on.
There is often a vocabulary gap between designers an developers, who should aim towards a ubiquitous way of conversing about colours, typography, viewport sizes, or the responsive grid system of a digital product… To bridge this gap at the Guardian, we use a CSS pre-processor as a communication enabler through the abstractions it allows us to put in place.
Talk given at the Front-end London meet-up on April 24, 2014. Listen to the talk + slides on YouTube: https://www.youtube.com/watch?v=DAfW1RSWYDA
Dynamics GP includes integrated manufacturing functionality that includes bills of materials, MRP, manufacturing orders, in-bound quality management, sales forecast management. You can utilize back flush or work in process processing. This document includes tips and tricks that you might not ordinarily find or know about.
BOM Management Webinar: Part Numbers - Intelligent or Just Numbers?Oleg Shilovitsky
OpenBOM Educational Webinar #5 discusses how to assign part numbers. Compares Intelligent vs Non-intelligent Part Numbers and give some tips on how to organize Part Numbering schemas
Hipster FP code harder to maintain because it actively removes domain knowledge Philip Schwarz
Carlo Pescio wrote a very interesting paper called 'Programming as if the Domain (and Performance) Mattered' https://drive.google.com/file/d/0B59Tysg-nEQZUkdRT2lfUVM3cVk.
The paper is centred on a programming approach that is a common FP solution to the 'Water collected between towers' coding challenge. This slide deck contains some excerpts from the first few pages of the paper. Download for better quality.
Improperly architected applications may work, may perform well, and may meet the acceptance criteria, but the ability to maintain them degrades over time. This presentation will show some of the common mistakes made when building large web applications, how to be aware of them, correct them, and hopefully prevent them.
Can we use BIM to help us design? Information is not only a construction or post construction benefit. The use of information at the early design stages and throughout design can help us to design by checking and testing our design assumptions and options
The PVS-Studio team is now actively developing a static analyzer for C# code. The first version is expected by the end of 2015. And for now my task is to write a few articles to attract C# programmers' attention to our tool in advance. I've got an updated installer today, so we can now install PVS-Studio with C#-support enabled and even analyze some source code. Without further hesitation, I decided to scan whichever program I had at hand. This happened to be the Umbraco project. Of course we can't expect too much of the current version of the analyzer, but its functionality has been enough to allow me to write this small article.
The Ultimate Question of Programming, Refactoring, and EverythingAndrey Karpov
Yes, you've guessed correctly - the answer is "42". In this article you will find 42 recommendations about coding in C++ that can help a programmer avoid a lot of errors, save time and effort. The author is Andrey Karpov - technical director of "Program Verification Systems", a team of developers, working on PVS-Studio static code analyzer. Having checked a large number of open source projects, we have seen a large variety of ways to shoot yourself in the foot; there is definitely much to share with the readers. Every recommendation is given with a practical example, which proves the currentness of this question. These tips are intended for C/C++ programmers, but usually they are universal, and may be of interest for developers using other languages.
Create room separations lines for the structure columnsWojciech Klepacki
It’s very common situation in real life scenario when we receive a structure model from the engineers and the structure columns don’t “cut” the room areas...
I've seen projects with shiny, new code render into unmaintainable big balls of mud within 2-3 years. Multiple times. But regardless of whether it's the code base as a whole that's rotten, or whether it's just the UI and User Experience that needs a major overhaul: the question on rewrite vs refactoring will come up sooner or later. Based on years of experience, and a plethora of bad decisions cumulating into epic failures, I'll share my experience on how to have a code base that stays maintainable - even after years. After this talk, you'll have more insight into whether you should refactor or rewrite, and how to do it right from now on.
There is often a vocabulary gap between designers an developers, who should aim towards a ubiquitous way of conversing about colours, typography, viewport sizes, or the responsive grid system of a digital product… To bridge this gap at the Guardian, we use a CSS pre-processor as a communication enabler through the abstractions it allows us to put in place.
Talk given at the Front-end London meet-up on April 24, 2014. Listen to the talk + slides on YouTube: https://www.youtube.com/watch?v=DAfW1RSWYDA
Dynamics GP includes integrated manufacturing functionality that includes bills of materials, MRP, manufacturing orders, in-bound quality management, sales forecast management. You can utilize back flush or work in process processing. This document includes tips and tricks that you might not ordinarily find or know about.
BOM Management Webinar: Part Numbers - Intelligent or Just Numbers?Oleg Shilovitsky
OpenBOM Educational Webinar #5 discusses how to assign part numbers. Compares Intelligent vs Non-intelligent Part Numbers and give some tips on how to organize Part Numbering schemas
Hipster FP code harder to maintain because it actively removes domain knowledge Philip Schwarz
Carlo Pescio wrote a very interesting paper called 'Programming as if the Domain (and Performance) Mattered' https://drive.google.com/file/d/0B59Tysg-nEQZUkdRT2lfUVM3cVk.
The paper is centred on a programming approach that is a common FP solution to the 'Water collected between towers' coding challenge. This slide deck contains some excerpts from the first few pages of the paper. Download for better quality.
Improperly architected applications may work, may perform well, and may meet the acceptance criteria, but the ability to maintain them degrades over time. This presentation will show some of the common mistakes made when building large web applications, how to be aware of them, correct them, and hopefully prevent them.
Can we use BIM to help us design? Information is not only a construction or post construction benefit. The use of information at the early design stages and throughout design can help us to design by checking and testing our design assumptions and options
The PVS-Studio team is now actively developing a static analyzer for C# code. The first version is expected by the end of 2015. And for now my task is to write a few articles to attract C# programmers' attention to our tool in advance. I've got an updated installer today, so we can now install PVS-Studio with C#-support enabled and even analyze some source code. Without further hesitation, I decided to scan whichever program I had at hand. This happened to be the Umbraco project. Of course we can't expect too much of the current version of the analyzer, but its functionality has been enough to allow me to write this small article.
The Ultimate Question of Programming, Refactoring, and EverythingAndrey Karpov
Yes, you've guessed correctly - the answer is "42". In this article you will find 42 recommendations about coding in C++ that can help a programmer avoid a lot of errors, save time and effort. The author is Andrey Karpov - technical director of "Program Verification Systems", a team of developers, working on PVS-Studio static code analyzer. Having checked a large number of open source projects, we have seen a large variety of ways to shoot yourself in the foot; there is definitely much to share with the readers. Every recommendation is given with a practical example, which proves the currentness of this question. These tips are intended for C/C++ programmers, but usually they are universal, and may be of interest for developers using other languages.
Create room separations lines for the structure columnsWojciech Klepacki
It’s very common situation in real life scenario when we receive a structure model from the engineers and the structure columns don’t “cut” the room areas...
Unleash Unlimited Potential with One-Time Purchase
BoxLang is more than just a language; it's a community. By choosing a Visionary License, you're not just investing in your success, you're actively contributing to the ongoing development and support of BoxLang.
Check out the webinar slides to learn more about how XfilesPro transforms Salesforce document management by leveraging its world-class applications. For more details, please connect with sales@xfilespro.com
If you want to watch the on-demand webinar, please click here: https://www.xfilespro.com/webinars/salesforce-document-management-2-0-smarter-faster-better/
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamtakuyayamamoto1800
In this slide, we show the simulation example and the way to compile this solver.
In this solver, the Helmholtz equation can be solved by helmholtzFoam. Also, the Helmholtz equation with uniformly dispersed bubbles can be simulated by helmholtzBubbleFoam.
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTier1 app
Even though at surface level ‘java.lang.OutOfMemoryError’ appears as one single error; underlyingly there are 9 types of OutOfMemoryError. Each type of OutOfMemoryError has different causes, diagnosis approaches and solutions. This session equips you with the knowledge, tools, and techniques needed to troubleshoot and conquer OutOfMemoryError in all its forms, ensuring smoother, more efficient Java applications.
Into the Box Keynote Day 2: Unveiling amazing updates and announcements for modern CFML developers! Get ready for exciting releases and updates on Ortus tools and products. Stay tuned for cutting-edge innovations designed to boost your productivity.
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...informapgpstrackings
Keep tabs on your field staff effortlessly with Informap Technology Centre LLC. Real-time tracking, task assignment, and smart features for efficient management. Request a live demo today!
For more details, visit us : https://informapuae.com/field-staff-tracking/
May Marketo Masterclass, London MUG May 22 2024.pdfAdele Miller
Can't make Adobe Summit in Vegas? No sweat because the EMEA Marketo Engage Champions are coming to London to share their Summit sessions, insights and more!
This is a MUG with a twist you don't want to miss.
Developing Distributed High-performance Computing Capabilities of an Open Sci...Globus
COVID-19 had an unprecedented impact on scientific collaboration. The pandemic and its broad response from the scientific community has forged new relationships among public health practitioners, mathematical modelers, and scientific computing specialists, while revealing critical gaps in exploiting advanced computing systems to support urgent decision making. Informed by our team’s work in applying high-performance computing in support of public health decision makers during the COVID-19 pandemic, we present how Globus technologies are enabling the development of an open science platform for robust epidemic analysis, with the goal of collaborative, secure, distributed, on-demand, and fast time-to-solution analyses to support public health.
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar
The European Union Agency for Law Enforcement Cooperation (Europol) has suffered an alleged data breach after a notorious threat actor claimed to have exfiltrated data from its systems. Infamous data leaker IntelBroker posted on the even more infamous BreachForums hacking forum, saying that Europol suffered a data breach this month.
The alleged breach affected Europol agencies CCSE, EC3, Europol Platform for Experts, Law Enforcement Forum, and SIRIUS. Infiltration of these entities can disrupt ongoing investigations and compromise sensitive intelligence shared among international law enforcement agencies.
However, this is neither the first nor the last activity of IntekBroker. We have compiled for you what happened in the last few days. To track such hacker activities on dark web sources like hacker forums, private Telegram channels, and other hidden platforms where cyber threats often originate, you can check SOCRadar’s Dark Web News.
Stay Informed on Threat Actors’ Activity on the Dark Web with SOCRadar!
Accelerate Enterprise Software Engineering with PlatformlessWSO2
Key takeaways:
Challenges of building platforms and the benefits of platformless.
Key principles of platformless, including API-first, cloud-native middleware, platform engineering, and developer experience.
How Choreo enables the platformless experience.
How key concepts like application architecture, domain-driven design, zero trust, and cell-based architecture are inherently a part of Choreo.
Demo of an end-to-end app built and deployed on Choreo.
Enhancing Research Orchestration Capabilities at ORNL.pdfGlobus
Cross-facility research orchestration comes with ever-changing constraints regarding the availability and suitability of various compute and data resources. In short, a flexible data and processing fabric is needed to enable the dynamic redirection of data and compute tasks throughout the lifecycle of an experiment. In this talk, we illustrate how we easily leveraged Globus services to instrument the ACE research testbed at the Oak Ridge Leadership Computing Facility with flexible data and task orchestration capabilities.
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus
As part of the DOE Integrated Research Infrastructure (IRI) program, NERSC at Lawrence Berkeley National Lab and ALCF at Argonne National Lab are working closely with General Atomics on accelerating the computing requirements of the DIII-D experiment. As part of the work the team is investigating ways to speedup the time to solution for many different parts of the DIII-D workflow including how they run jobs on HPC systems. One of these routes is looking at Globus Compute as a way to replace the current method for managing tasks and we describe a brief proof of concept showing how Globus Compute could help to schedule jobs and be a tool to connect compute at different facilities.
Listen to the keynote address and hear about the latest developments from Rachana Ananthakrishnan and Ian Foster who review the updates to the Globus Platform and Service, and the relevance of Globus to the scientific community as an automation platform to accelerate scientific discovery.
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisGlobus
JASMIN is the UK’s high-performance data analysis platform for environmental science, operated by STFC on behalf of the UK Natural Environment Research Council (NERC). In addition to its role in hosting the CEDA Archive (NERC’s long-term repository for climate, atmospheric science & Earth observation data in the UK), JASMIN provides a collaborative platform to a community of around 2,000 scientists in the UK and beyond, providing nearly 400 environmental science projects with working space, compute resources and tools to facilitate their work. High-performance data transfer into and out of JASMIN has always been a key feature, with many scientists bringing model outputs from supercomputers elsewhere in the UK, to analyse against observational or other model data in the CEDA Archive. A growing number of JASMIN users are now realising the benefits of using the Globus service to provide reliable and efficient data movement and other tasks in this and other contexts. Further use cases involve long-distance (intercontinental) transfers to and from JASMIN, and collecting results from a mobile atmospheric radar system, pushing data to JASMIN via a lightweight Globus deployment. We provide details of how Globus fits into our current infrastructure, our experience of the recent migration to GCSv5.4, and of our interest in developing use of the wider ecosystem of Globus services for the benefit of our user community.
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Shahin Sheidaei
Games are powerful teaching tools, fostering hands-on engagement and fun. But they require careful consideration to succeed. Join me to explore factors in running and selecting games, ensuring they serve as effective teaching tools. Learn to maintain focus on learning objectives while playing, and how to measure the ROI of gaming in education. Discover strategies for pitching gaming to leadership. This session offers insights, tips, and examples for coaches, team leads, and enterprise leaders seeking to teach from simple to complex concepts.
Navigating the Metaverse: A Journey into Virtual Evolution"Donna Lenk
Join us for an exploration of the Metaverse's evolution, where innovation meets imagination. Discover new dimensions of virtual events, engage with thought-provoking discussions, and witness the transformative power of digital realms."
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns
Unlocking Business Potential: Tailored Technology Solutions by Prosigns
Discover how Prosigns, a leading technology solutions provider, partners with businesses to drive innovation and success. Our presentation showcases our comprehensive range of services, including custom software development, web and mobile app development, AI & ML solutions, blockchain integration, DevOps services, and Microsoft Dynamics 365 support.
Custom Software Development: Prosigns specializes in creating bespoke software solutions that cater to your unique business needs. Our team of experts works closely with you to understand your requirements and deliver tailor-made software that enhances efficiency and drives growth.
Web and Mobile App Development: From responsive websites to intuitive mobile applications, Prosigns develops cutting-edge solutions that engage users and deliver seamless experiences across devices.
AI & ML Solutions: Harnessing the power of Artificial Intelligence and Machine Learning, Prosigns provides smart solutions that automate processes, provide valuable insights, and drive informed decision-making.
Blockchain Integration: Prosigns offers comprehensive blockchain solutions, including development, integration, and consulting services, enabling businesses to leverage blockchain technology for enhanced security, transparency, and efficiency.
DevOps Services: Prosigns' DevOps services streamline development and operations processes, ensuring faster and more reliable software delivery through automation and continuous integration.
Microsoft Dynamics 365 Support: Prosigns provides comprehensive support and maintenance services for Microsoft Dynamics 365, ensuring your system is always up-to-date, secure, and running smoothly.
Learn how our collaborative approach and dedication to excellence help businesses achieve their goals and stay ahead in today's digital landscape. From concept to deployment, Prosigns is your trusted partner for transforming ideas into reality and unlocking the full potential of your business.
Join us on a journey of innovation and growth. Let's partner for success with Prosigns.
Large Language Models and the End of ProgrammingMatt Welsh
Talk by Matt Welsh at Craft Conference 2024 on the impact that Large Language Models will have on the future of software development. In this talk, I discuss the ways in which LLMs will impact the software industry, from replacing human software developers with AI, to replacing conventional software with models that perform reasoning, computation, and problem-solving.
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Mind IT Systems
Healthcare providers often struggle with the complexities of chronic conditions and remote patient monitoring, as each patient requires personalized care and ongoing monitoring. Off-the-shelf solutions may not meet these diverse needs, leading to inefficiencies and gaps in care. It’s here, custom healthcare software offers a tailored solution, ensuring improved care and effectiveness.
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Donut chart in Revit with Dynamo
1. By WOJCIECH KLEPACKI wklepa@gmail.com
Imagine yourself, the ideal world where Revit can do the fancy charts based on the data like
a real spreadsheet. Well, it’s not only the song of the future, actually, this is happening now in the
backyard. There is Mandrill, a nice and very effective package for the Dynamo to visualise the data in
a way most spreadsheets can do. This package is a brilliant piece of code and I highly recommend any
data-hungry individual to make himself familiar with it. Data mining and analysing take a huge part in
our daily activities these days. I have some good experience with Mandrill and I price it very high.
The only issue I had with Mandrill was, that it didn’t produce vector output. You can export
the outcome to bitmap and then nest it in a Revit. The only objection to this process is, that the chart
is not easy to manipulate and change inside Revit. My ambition was to create a Dynamo workflow,
which is less sophisticated than Mandrill but still good enough, will produce a vector chart inside Revit
environment.
I developed a script and complementary detail families to effectively achieve the working
solution. It’s less flexible than Mandrill package and has some limitations but suits my needs perfectly.
This a snippet of a working, real-world application (I’ve only changed the inputs to be more
general):
Inside this same topology, we can achieve pie charts as well. Redeveloping script a bit and
building more detail families it’s easy to successfully show data in a different manner. Bar charts or
plots are equally possible. Now, data-driven Revit charts are within a reach of hands. Think about
potentially endless options how to enrich your raw and sometimes dull schedules.
This particular script takes the manually entered data as an input but what I normally do is to
feed it with data from real project environment like rooms or glazed walls areas.
2. By WOJCIECH KLEPACKI wklepa@gmail.com
This is how the whole script looks. I decided to use the Code Blocks and I assure you there is
a good reason for this. Honestly speaking, there is more than only one. At first, it keeps the whole
script much more compact. Secondly, because it has a modular structure it subjects to changes
seamlessly and adopts new modules easily. The last but not least feature is that when you have some
skills it’s more clear and effortless to follow.
Let me give you a good example. This is a bit of code based on the traditional Dynamo nodes:
The one below is done in Code Block technique. Like I mentioned, it’s easier to follow and it’s
more compact. You can add own comments inside to make it more understandable. And what is
important and comes in a package, it’s more elegant and sophisticated. Mastering this technique is
very good exercise to start coding in Python for instance. Keeping every chunk of code in modules
creates the good habits for the future as well.
3. By WOJCIECH KLEPACKI wklepa@gmail.com
Let’s go deeper and allow me to explain the background of the whole process. The workflow
utilizes detail families developed exclusively for the purpose of this process. The first one is the
“donut” and the last one is the “table”. I decided to base the workflow on the families rather than the
lines drawn by the script only because it’s a good compromise between the outcome and keeping the
script reasonably easy to change. Please consider the fact that almost every specialised script is
designed to solve specific not the generic problem.
This is how the “donut” family looks and works:
4. By WOJCIECH KLEPACKI wklepa@gmail.com
Please notice that all parameters that are to be changed by the Dynamo script are “instance”. This is
important to keep them this way otherwise it will be not possible to access these parameters and
change them per individual family instance. Please pay attention, that the chunk of “donut” is driven
by angle, inner and outer parameters.
Same principals apply to the “table” family:
And family parameters:
There is a trick, however. The table header is a part of the “table” family and it’s controlled by the
visibility parameter. This trick keeps the whole workflow easier to manage inside the Dynamo.
Now let’s jump in Dynamo and analyse the code. The first part of the script is responsible for
the formatting the input data. Because I use string input nodes and not all the data are a string type,
I want to convert some of them to integers. Subsequently, I want to change them into lists, splitting
by the “,” separator. This is exactly what the block below does:
5. By WOJCIECH KLEPACKI wklepa@gmail.com
Please pay attention, that I plug the watch nodes in some critical places of the code to analyse
what information is coming out from them. This is not only the matter of a good practice. This step is
necessary to understand if everything runs according to the specification.
The chunk of code below checks if the input lists are equal in the count. It gives a combined
list of input names and element counts. As an additional precaution, it gives a warning in case of error
or confirmation if everything is up and running.
The top part of the code calculates the percentage share and rounds the numbers.
Subsequently, it converts the numbers to strings and adds “%” sign and “SQM” for percentages and
6. By WOJCIECH KLEPACKI wklepa@gmail.com
square meters respectively. Because values for both are float type, it requires a few additional lines
of code to convert and round them properly.
indDot=String.IndexOf(numStr,".",true);
strRem=String.Remove(numStr,(indDot+digToLeft+1),(numLen-indDot-digToLeft-1));
To make the life complicated, it may happen that some numbers are integers and others are a float.
Two lines of code above take care that both of the types will be converted to strings with the desired
precision. I want 100 to be precisely formatted as “100”, not “100.00”. But in contrary, I want 175.378
to be formatted exactly as “175.38”.
Now comes the time when we definitely want to play with some colours. This portion of code
defines “top left”, “middle” and “bottom right” colours. These three members will define the limits
of the matrix of colours. Subsequently, I want to shuffle the colours, but I will use them only if the
Boolean node is true, otherwise, I use the list of colours straight from the mixer.
Here comes the interesting part and time the for a little disclaimer. The code will place
“donuts” and “tables” in any plan, ceiling or section view. In my opinion, the best place to locate
them is newly created drafting view. This view must be an active view! For some reason, I suggest
setting the drawing scale to 1:100. The script will work fine on any scale, but some additional tweaking
of code might be required to make it look nice and neat. The portion of the code below prepares data
for rotation and placement the pieces of “donut”. The script utilizes the node
FamilyInstance.ByPointInView from LunchBox package to place the family in a proper location.
Afterwards, the script assigns the values for the parameters responsible for the rotation, inner and
outer radiuses of the “donuts”. Before running the script, make sure that the right fill pattern is chosen
in a Fill Patterns node. Also, pay attention that the outer radius has to be greater than the inner radius.
It’s the question of common sense to keep them this way but it’s a matter of a good practice to
doublecheck.
7. By WOJCIECH KLEPACKI wklepa@gmail.com
The portion of the script below does roughly same operations as the part from the above. The
differences occur because it was designed to place the “table” detail family. But the concept is the
same. Find the location points, place multiple family instances, resize and assign values to the
parameters.
Last part of the script will override the colours of the placed family instances in a view. Please
pay attention than the script utilizes only a few inputs of the OverrideGraphicSettings.ByProperties
node.
8. By WOJCIECH KLEPACKI wklepa@gmail.com
The benefit of keeping the chart as a native Revit geometry is an ability to perform
modifications locally without running the script again. Please remember that if you want to modify
the script dramatically, change the input numbers, amount of inputs or colours, it’s compulsory to run
the script again. Also in new Revit session, it’s necessary to delete existing “donuts” and “tables” in
an active view. As a bottom line let me visualise the example of a local change you can make. This
change is impossible when the chart is nor vector type: