Skip to content

Instantly share code, notes, and snippets.

View ibuilder's full-sized avatar

Matthew M. Emma ibuilder

View GitHub Profile
@ibuilder
ibuilder / procore_owner_bill.py
Created April 29, 2025 14:51
Python script to pull Procore API Budget information and create an AIA G702/G703 into Excel.
import requests
import pandas as pd
import openpyxl
from openpyxl.styles import Font, Border, Side, Alignment, PatternFill
from openpyxl.drawing.image import Image
from datetime import datetime
import os
import json
class ProcoreAPIClient:
@ibuilder
ibuilder / textura_invoice_import.py
Created April 24, 2025 16:41
Python script that makes an API call to import invoices with authentication
import requests
import json
# API configuration
BASE_URL = "https://api.textura.oraclecloud.com" # Replace with your actual Textura API base URL
ENDPOINT = "/invoices/import" # Endpoint for invoice import (adjust if different)
API_KEY = "your_api_key_here" # Replace with your actual API key or token
# Sample invoice data (modify according to your requirements and API specs)
invoice_data = {
@ibuilder
ibuilder / textura_api_call.py
Last active April 24, 2025 16:24
Python API call for Oracle Textura Payment Management (TPM) REST API,
import requests
import json
# API Servers
# Production Server: https://services.texturacorp.com/ebis/api/v1/
# Test Server: https://usint1.textura.oraclecloud.com/ebis/api/v1/
# Compliance Example
# https://services.texturacorp.com/ebis/api/v1/import/compliance-requirements
# Test: https://usint1.textura.oraclecloud.com/ebis/api/v1/import/compliance-requirements
@ibuilder
ibuilder / html_gantt_bootstrap_schedule.html
Created March 29, 2025 00:11
This Gantt chart for a house building project includes: Task Information: Each task has a name, start date, end date, and calculated duration Tasks are displayed chronologically from site preparation to final inspection Key Milestones as requested: Foundation Complete (May 10, 2025) Building Top Out (June 25, 2025) Building Closeout (October 5, …
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>House Building Project Gantt Chart</title>
<!-- Bootstrap CSS -->
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.0/css/bootstrap.min.css" rel="stylesheet">
<style>
.gantt-container {
@ibuilder
ibuilder / procore_apicall.html
Created March 29, 2025 00:04
This HTML page provides a complete interface for interacting with the Procore API using Bootstrap for styling. Here's what it includes: Authentication Section Form to enter your Procore API credentials (Client ID and Secret) Implements OAuth 2.0 authentication flow Stores tokens securely in localStorage API Request Section Dropdown to select com…
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Procore API Integration</title>
<!-- Bootstrap CSS -->
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.0/css/bootstrap.min.css" rel="stylesheet">
<style>
.card {
<?php
/**
* Procore API Connector
*
* A simple PHP class to authenticate and interact with the Procore API
*/
class ProcoreConnector {
private $clientId;
private $clientSecret;
@ibuilder
ibuilder / building.xml
Created October 28, 2023 12:56
XSD file for Building
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Building">
<xs:complexType>
<xs:sequence>
<xs:element name="Name" type="xs:string"/>
<xs:element name="Address" type="xs:string"/>
<xs:element name="FloorCount" type="xs:positiveInteger"/>
</xs:sequence>
</xs:complexType>
</xs:element>
@ibuilder
ibuilder / pyrevit_floorcreate.py
Created October 28, 2023 11:03
Create floor plan with pyrevit
# pip install pyrevit
import clr
clr.AddReference('RevitAPI')
import Autodeskfrom Autodesk.Revit.DB
import *import pyrevitfrom pyrevit
import revit
revit.doc = __revit__.ActiveUIDocument.Document
@ibuilder
ibuilder / dotbim_wall.py
Created October 20, 2023 10:28
Generate wall in dotbim using python
import dotbimpy as bim
# Create a new BIM modelmodel = bim.BIMModel()
# Add elements to the modelwall = bim.Wall()
wall.name = "Wall 1"wall.length = 5000wall.height = 3000# Add the wall to the modelmodel.add_element(wall)
# Save the model as a .bim filemodel.save("output.bim")
print("Model file generated successfully!")
@ibuilder
ibuilder / office_dynamo.py
Created October 19, 2023 18:34
Basic schema to generate an ifc model for office space using dynamo
# Import necessary libraries
# pip install dynamo-python
import dynamo
session = dynamo.Session()
# Define the number of employees and desired area per employee for each space
num_employees = {
'desks': 50,
'kitchen': 20,