Sunday, 30 November 2025

SharePoint for BIM

Overview: Building Information Modelling (BIM) Enterprise Document Management Systems are expensive.  I decided to use SharePoint instead, as we already have SharePoint licencing, security is approved, and it works with Entra MFA.  SharePoint offers great API's and is well-known and easy to manage.  Lastly, I got much better performance from SharePoint than the other two dedicated Doc Mgm Systems I evaluated.

Concerns:

  • BIM version, numbering, and workflows: No issues seen; merely need a simple workflow
  • Web Viewer for CAD files

Advantages:

  • Part of the Microsoft ecosystem
  • Free, as we all have E3 licences
  • Users know how to use and manage SharePoint, so no training is required
  • SaaS is running and is part of our business SLA, with 99.9% uptime.  SharePoint has an active-active architecture, built-in backups and data is stored in multiple locations
  • Reduced setup and no external 3rd party requiring contracts and approvals.  No supplier has nearly as many compliance assertions including ISO27001, SOC1, SOC2, SOC3, GDPR, 
  • Security is already ready with the client Entra userbase with MFA.  DLP and sensitivity labels.   Great built-in data residency, audit logs and retention policies.  File Sync is super helpful in working with large CAD files, especially in remote locations.  All data is encrypted at rest and in transit.
  • SharePoint is widely used in construction projects.  Customers and third parties can securely access SharePoint Online for central collaboration.
  • Mobile-friendly, tool-friendly, management-friendly approach to BIM.
<ProjectCode>-<CreatedDivision/Partnercode>-<DocType>-<Discipline/Category>-<IncrementNo>
BLD123-MACE-CAD-ELE-00001

HLD Architecture Designs for Finding SharePoint File data

 SharePoint data source using Microsoft Foundry to build an Agent



Sunday, 2 November 2025

Edge Computing Notes (IoT)

WIP

Edge Computing is where computing is done close to IoT devices and machines/PLCs.  Basically, if it happens on the "edge" of your network.  The processing occurs on local devices, gateways, or edge servers near IoT sensors, cameras, or machines.

  • Low Latency: Ideal for applications like autonomous vehicles, industrial automation, and AR/VR.
  • Bandwidth Efficiency: Only relevant data is sent to the cloud, reducing costs.
  • Reliability: Systems can continue functioning even with intermittent connectivity.
  • Over the past few weeks, I ordered a Raspberry Pi, which I intend to use for processing data from remote IoT sensors, namely Cameras, LiDAR, and temperature.

    Message Queue Telemetry Support (MQTT) is a light weight messaging protocol used to allow remote devices to communicate reliably using a pub-sub model operating in real-time.  MQTT 5.0 is ISO/IEC 20922 and the latest approved edition done in 2019.  Sends small packets

    Node-RED provides a web browser-based flow editor, which can be used to create JavaScript functions (Wikipedia)

    Azure IoT Edge is a cloud-to-edge computing platform that extends Azure services and custom logic to IoT devices. It allows you to deploy containerised workloads (such as AI models, analytics, and business logic) directly on edge devices, enabling local data processing and reducing reliance on continuous cloud connectivity. This improves latency, bandwidth efficiency, and resilience in offline scenarios.

    IoT Edge Modules are Docker-compatible containers running Azure services, third-party apps, or custom code. Examples: Azure Stream Analytics, Azure Machine Learning models. [learn.microsoft.com]

    IoT Edge Runtime must be installed on each edge device. Handles module deployment, security, and communication between modules, devices, and the cloud.

    Includes:

    IoT Edge Agent: Deploys and monitors modules.

    IoT Edge Hub: Manages messaging between modules and the cloud. [learn.microsoft.com]


    Azure IoT Hub is a cloud service for managing IoT Edge devices, configurations, and monitoring.


    A Raspberry Pi has an OS, whereas an Arduino device has no OS:

    • Arduino is an Application + Microcontroller (MCU) - Compile code in C++ or C
    • Pi is Application + Library & System Functions (OS) + MCU



    Why Use Ada on MCUs?

    • High reliability (ideal for avionics, medical devices).
    • Built-in concurrency and timing features.
    • Safer than C/C++ in many cases due to strong typing and runtime checks.

    • If you need maximum safety and reliability, Ada is superior.
    • If you need performance, simplicity, and broad support, C dominates.
    Ada is a strongly typed, multi-paradigm programming language originally developed for the U.S. Department of Defense to ensure reliability in mission-critical systems.
    Setup:
    • Install GNAT (GNU Ada Toolchain)
    • GNAT Studio or VS Code with Ada extensions.
    • Run gnat --version in your terminal
    • Write the code:

    Compile & Run> gnatmake hello_mobility.adb