Skip to content

Instantly share code, notes, and snippets.

View chuongmep's full-sized avatar
👋
Loading...

Chuong Ho chuongmep

👋
Loading...
View GitHub Profile
@chuongmep
chuongmep / Set Parameter Dynamo Sample.py
Last active June 4, 2020 16:33
Set Parameter Dynamo Sample
#Copyright(c) 2020, chuongho
# @chuongmep, https://chuongmep.com/
import clr
import sys
sys.path.append('C:\Program Files (x86)\IronPython 2.7\Lib')
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
import clr
@chuongmep
chuongmep / GetParameterValue.py
Created June 4, 2020 16:47
Get Parmater Revit API
def GetParameterValue(parameter):
value= None
if parameter.StorageType == StorageType.Double:
value = parameter.AsDouble()
elif parameter.StorageType == StorageType.Integer:
if parameter.Definition.ParameterType == ParameterType.Integer:
value = parameter.AsInteger()
else:
value = parameter.AsValueString()
elif parameter.StorageType == StorageType.String:
@chuongmep
chuongmep / GetParameterValue DynamoRevit C#.cs
Last active May 13, 2021 03:53
GetParameterValue DynamoRevit C#
public static object GetParameterValue(Autodesk.Revit.DB.Parameter param)
{
object result;
switch (param.StorageType)
{
case StorageType.ElementId:
int valueId = param.AsElementId().IntegerValue;
if (valueId > 0)
{
var elem = ElementIDLifecycleManager<int>.GetInstance().GetFirstWrapper(valueId) as Element;
public static string GetParameterValue(this Parameter p)
{
if (p == null) return string.Empty;
switch (p.StorageType)
{
case StorageType.Double:
return p.AsDouble().ToString();
case StorageType.ElementId:
try
{
import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import Surface as DSSurf
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import*
clr.AddReference('RevitNodes')
import Revit
clr.ImportExtensions(Revit.GeometryConversion)
import sys
pyt_path = r'C:\\Program Files (x86)\\IronPython 2.7\\Lib'
public static List<Autodesk.DesignScript.Geometry.Surface> GetTop(Autodesk.DesignScript.Geometry.Geometry geometry)
{
List<Autodesk.DesignScript.Geometry.Surface> TopSurface = new List<Autodesk.DesignScript.Geometry.Surface>();
Autodesk.DesignScript.Geometry.Geometry[] geometries = geometry.Explode();
foreach (Autodesk.DesignScript.Geometry.Surface g in geometries)
{
double d = g.NormalAtParameter(0.5, 0.5).Z;
if (d>0.1)
{
TopSurface.Add(g);
@chuongmep
chuongmep / GetTopFace.cs
Last active August 1, 2021 12:13
Get Top Face Revit API
public static PlanarFace GetTopFace(Solid solid)
{
PlanarFace topFace = null;
FaceArray faces = solid.Faces;
foreach (Face f in faces)
{
PlanarFace pf = f as PlanarFace;
if (pf.FaceNormal.IsAlmostEqualTo(new XYZ(0, 0, 1)))
{
topFace = pf;
# Load the Python Standard and DesignScript Libraries
import sys
import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *
clr.AddReference('acdbmgd')
clr.AddReference('acmgd')
clr.AddReference('accoremgd')
clr.AddReference('AecBaseMgd')
import Autodesk
@chuongmep
chuongmep / PurgeCAD.cs
Last active June 8, 2020 08:25
Purge CAD
public static void PurgesCAD()
{
Document doc = Autodesk.AutoCAD.ApplicationServices.Core.Application.DocumentManager.MdiActiveDocument;
Database db = doc.Database;
using (Transaction Tx = db.TransactionManager.StartTransaction())
{
BlockTable table = Tx.GetObject(db.BlockTableId,
OpenMode.ForRead) as BlockTable;
ObjectIdCollection blockIds = new ObjectIdCollection();
do
import clr
clr.AddReference('ProtoGeometry')
import Autodesk.DesignScript.Geometry
a = IN[0]
if isinstance(a, list):
a = a
else: a = [a]