Anuncios
Atención para clientes sin autenticación multifactor o inicio de sesión único: la verificación OTP se implementará en abril de 2025. Lee todo al respecto aquí.

Error en el codigo para unir paredes y el piso en revit

Anonymous

Error en el codigo para unir paredes y el piso en revit

Anonymous
No aplicable

Buenas tardes, en un foro mas o menos del 2014 encontré un codigo para unir el piso con las paredes para revit, cuando lo pego en mi visual studio community 2019 me registra error en la linea "Document doc = this.ActiveUIDocument.Document;", cuando leo el detalle del error, visual me muestra lo siguiente.


Error CS1061 "Class1" no contiene una definición para "ActiveUIDocument" ni un método de extensión accesible "ActiveUIDocument" que acepte un primer argumento del tipo "Class1" (¿falta alguna directiva using o una referencia de ensamblado?).

podrian ayudarme para saber que falta en el codigo o si hay que actualizar algo ya que es muy viejo.

 

este es el codigo completo.

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;

namespace Autojoining_floors_and_walls
{
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
public class Class1
{
private bool overlap1D(double a1, double a2, double b1, double b2)
{

if (a2 >= b1 && b2 >= a1) return true;

return false;

}

private bool bbIntersect(BoundingBoxXYZ A, BoundingBoxXYZ B)
{

return overlap1D(A.Min.X, A.Max.X, B.Min.X, B.Max.X) &&
overlap1D(A.Min.Y, A.Max.Y, B.Min.Y, B.Max.Y) &&
overlap1D(A.Min.Z, A.Max.Z, B.Min.Z, B.Max.Z);

}

public void joinFloorWall()
{

Document doc = this.ActiveUIDocument.Document;
UIDocument uiDoc = new UIDocument(doc);

FilteredElementCollector walls = new FilteredElementCollector(doc)
.OfCategory(BuiltInCategory.OST_Walls).WhereElementIsNotElementType();
FilteredElementCollector floors = new FilteredElementCollector(doc)
.OfCategory(BuiltInCategory.OST_Floors).WhereElementIsNotElementType();

using (Transaction t = new Transaction(doc, "Join walls to floors"))
{

t.Start();
foreach (Wall w in walls)
{

BoundingBoxXYZ wBB = w.get_BoundingBox(null);

if (wBB != null) foreach (Floor f in floors)
{

BoundingBoxXYZ fBB = f.get_BoundingBox(null);

if (fBB != null) if (bbIntersect(wBB, fBB))
{

if (!JoinGeometryUtils.AreElementsJoined(doc, w, f))
{
try
{
JoinGeometryUtils.JoinGeometry(doc, w, f);
}
catch (Autodesk.Revit.Exceptions.ApplicationException)
{
}
}

}
}
}

t.Commit();

}

}
}
}

0 Me gusta
Responder
Soluciones aceptadas (1)
609 Vistas
5 Respuestas
Respuestas (5)

Organon
Advisor
Advisor
Solución aceptada

@Anonymous ,

 

Hola.

 

Entiendo que no hay foro en español de API de Revit, pero este no es el foro para eso. De todos modos te explico, el problema que tienes es que ese código es de una macro y tú estás intentando hacer un comando externo. En un comando externo necesitas implementar la interfaz IExternalCommand y crear el método que la ejecute. Acá se explica cómo: https://knowledge.autodesk.com/support/revit-products/learn-explore/caas/simplecontent/content/lesson-3-first-look-code.html

 

Saludos.


Arquitectura | Análisis CAD & BIM | Diseño Paramétrico | Programación
BIM-METADATA | LinkedIn | YouTube

Anonymous
No aplicable

Hola

Muchas gracias por la aclaración y la explicación acerca del código, disculpa si el foro no es el adecuado para mi pregunta, soy nuevo en esto.

Gracias.

Organon
Advisor
Advisor

@Anonymous

 

No hay de qué. Lamentablemente no hay foro de API en Español, si gustas puedes apoyar la iniciativa en este tema: https://forums.autodesk.com/t5/revit-bim-espanol/revit-api/td-p/5887018/page/2

 

Saludos.


Arquitectura | Análisis CAD & BIM | Diseño Paramétrico | Programación
BIM-METADATA | LinkedIn | YouTube

Anonymous
No aplicable

Listo, ya comenté en el link que me enviaste acerca del apoyo de abrir un foro de API para poder compatir dudas y aprender, ojala si puedan hacerlo.

 

Saludos.

Organon
Advisor
Advisor

@Anonymous 

 

Gracias. :símbolo_del_pulgar_hacia_arriba:

 

Saludos.


Arquitectura | Análisis CAD & BIM | Diseño Paramétrico | Programación
BIM-METADATA | LinkedIn | YouTube
0 Me gusta