Paramétrage de Projet Excel-Pluralité de Catégories
Camille AUBERT
31 décembre 2019
3.07K
2
Bonjour à tous,
Afin de mieux gérer les paramètres de projets que je souhaite utiliser, j'aimerai me créer un dynamo permettant de créer à la chaîne plusieurs paramètres partagés.
Je me suis donc créer un excel avec le listing de tous mes paramètres, et avec leurs catégories d'applications (Gaine, Canalisations ....)
Un paramètre pouvant être appliqué à plusieurs catégories, j'aimerai que pour chaque paramètre avoir la possibilité d'appeler une liste de catégories crée au sein de mon excel. (colonnes V crées à partir des colonnes R et T).
C'est ici que je bloque, je n'arrive pas à affecter ces listes de catégories à mes paramètres....
Par ailleurs je m’aperçois que dans ce code, l'application par type et ou occurrence ne fonctionne pas correctement .
En effet, tous les paramètres sont appliqués par occurrence (colonne L).
J'ai bien conscience que le dynamo que je propose ne permet pas de gérer la pluralité de catégorie au sein d'un paramétres ....
Avez des solutions pour que cela fonctionne correctement ?
Par avance merci et bonnes fêtes de fin d'années à tous .
Code Python :
#Copyright(c) 2015, Konrad Sobon
# @arch_laboratory, http://archi-lab.net
import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *
# Import DocumentManager and TransactionManager
clr.AddReference("RevitServices"
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
# Import RevitAPI
clr.AddReference("RevitAPI"
import Autodesk
from Autodesk.Revit.DB import *
doc = DocumentManager.Instance.CurrentDBDocument
uiapp = DocumentManager.Instance.CurrentUIApplication
app = uiapp.Application
from System.Collections.Generic import *
# Import ToDSType(bool) extension method
clr.AddReference("RevitNodes"
import Revit
clr.ImportExtensions(Revit.Elements)
import System
#The inputs to this node will be stored as a list in the IN variable.
dataEnteringNode = IN
_paramName = IN[0]
_groupName = IN[1]
_paramType = IN[2]
_visible = IN[3]
_category = IN[4]
_paramGroup = IN[5]
_instance = IN[6]
def ParamBindingExists(_doc, _paramName, _paramType):
map = doc.ParameterBindings
iterator = map.ForwardIterator()
iterator.Reset()
while iterator.MoveNext():
if iterator.Key != None and iterator.Key.Name == _paramName and iterator.Key.ParameterType == _paramType:
paramExists = True
break
else:
paramExists = False
return paramExists
def RemoveParamBinding(_doc, _paramName, _paramType):
map = doc.ParameterBindings
iterator = map.ForwardIterator()
iterator.Reset()
while iterator.MoveNext():
if iterator.Key != None and iterator.Key.Name == _paramName and iterator.Key.ParameterType == _paramType:
definition = iterator.Key
break
message = None
if definition != None:
map.Remove(definition)
message = "Success"
return message
def addParam(doc, _paramName, _visible, _instance, _groupName, _paramGroup,k):
message = None
if ParamBindingExists(doc, _paramName, _paramType):
if not RemoveParamBinding(doc, _paramName, _paramType) == "Success":
message = "Param Binding Not Removed Successfully"
else:
message = None
group = file.Groups.get_Item(_groupName)
if group == None:
group = file.Groups.Create(_groupName)
if group.Definitions.Contains(group.Definitions.Item[_paramName]):
_def = group.Definitions.Item[_paramName]
else:
_def = group.Definitions.Create(opt)
param = doc.ParameterBindings.Insert(_def, bind, _paramGroup)
return message
#"Start" the transaction
TransactionManager.Instance.EnsureInTransaction(doc)
try:
file = app.OpenSharedParameterFile()
except:
message = "No Shared Parameter file found."
pass
k=0
while k<_paramName.Count:
builtInCategory = System.Enum.ToObject(BuiltInCategory, _category[k].Id)
cats = app.Create.NewCategorySet()
cats.Insert(doc.Settings.Categories.get_Item(builtInCategory))
if _instance[k]:
bind = app.Create.NewInstanceBinding(cats)
else:
bind = app.Create.NewTypeBinding(cats)
opt = ExternalDefinitionCreationOptions(_paramName[k], _paramType[k])
opt.Visible = _visible[k]
if isinstance(_paramName[k], list):
for i in _paramName[k]:
message = addParam(doc, i, _visible[k], _instance[k], _groupName[k], _paramGroup[k], k)
else:
message = addParam(doc, _paramName[k], _visible[k], _instance[k], _groupName[k], _paramGroup[k],k)
k=k+1
# "End" the transaction
TransactionManager.Instance.TransactionTaskDone()
#Assign your output to the OUT variable
if message == None:
OUT = "Success"
else:
OUT = message
Afin de mieux gérer les paramètres de projets que je souhaite utiliser, j'aimerai me créer un dynamo permettant de créer à la chaîne plusieurs paramètres partagés.
Je me suis donc créer un excel avec le listing de tous mes paramètres, et avec leurs catégories d'applications (Gaine, Canalisations ....)
Un paramètre pouvant être appliqué à plusieurs catégories, j'aimerai que pour chaque paramètre avoir la possibilité d'appeler une liste de catégories crée au sein de mon excel. (colonnes V crées à partir des colonnes R et T).
C'est ici que je bloque, je n'arrive pas à affecter ces listes de catégories à mes paramètres....
Par ailleurs je m’aperçois que dans ce code, l'application par type et ou occurrence ne fonctionne pas correctement .
En effet, tous les paramètres sont appliqués par occurrence (colonne L).
J'ai bien conscience que le dynamo que je propose ne permet pas de gérer la pluralité de catégorie au sein d'un paramétres ....
Avez des solutions pour que cela fonctionne correctement ?
Par avance merci et bonnes fêtes de fin d'années à tous .
Code Python :
#Copyright(c) 2015, Konrad Sobon
# @arch_laboratory, http://archi-lab.net
import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *
# Import DocumentManager and TransactionManager
clr.AddReference("RevitServices"
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
# Import RevitAPI
clr.AddReference("RevitAPI"
import Autodesk
from Autodesk.Revit.DB import *
doc = DocumentManager.Instance.CurrentDBDocument
uiapp = DocumentManager.Instance.CurrentUIApplication
app = uiapp.Application
from System.Collections.Generic import *
# Import ToDSType(bool) extension method
clr.AddReference("RevitNodes"
import Revit
clr.ImportExtensions(Revit.Elements)
import System
#The inputs to this node will be stored as a list in the IN variable.
dataEnteringNode = IN
_paramName = IN[0]
_groupName = IN[1]
_paramType = IN[2]
_visible = IN[3]
_category = IN[4]
_paramGroup = IN[5]
_instance = IN[6]
def ParamBindingExists(_doc, _paramName, _paramType):
map = doc.ParameterBindings
iterator = map.ForwardIterator()
iterator.Reset()
while iterator.MoveNext():
if iterator.Key != None and iterator.Key.Name == _paramName and iterator.Key.ParameterType == _paramType:
paramExists = True
break
else:
paramExists = False
return paramExists
def RemoveParamBinding(_doc, _paramName, _paramType):
map = doc.ParameterBindings
iterator = map.ForwardIterator()
iterator.Reset()
while iterator.MoveNext():
if iterator.Key != None and iterator.Key.Name == _paramName and iterator.Key.ParameterType == _paramType:
definition = iterator.Key
break
message = None
if definition != None:
map.Remove(definition)
message = "Success"
return message
def addParam(doc, _paramName, _visible, _instance, _groupName, _paramGroup,k):
message = None
if ParamBindingExists(doc, _paramName, _paramType):
if not RemoveParamBinding(doc, _paramName, _paramType) == "Success":
message = "Param Binding Not Removed Successfully"
else:
message = None
group = file.Groups.get_Item(_groupName)
if group == None:
group = file.Groups.Create(_groupName)
if group.Definitions.Contains(group.Definitions.Item[_paramName]):
_def = group.Definitions.Item[_paramName]
else:
_def = group.Definitions.Create(opt)
param = doc.ParameterBindings.Insert(_def, bind, _paramGroup)
return message
#"Start" the transaction
TransactionManager.Instance.EnsureInTransaction(doc)
try:
file = app.OpenSharedParameterFile()
except:
message = "No Shared Parameter file found."
pass
k=0
while k<_paramName.Count:
builtInCategory = System.Enum.ToObject(BuiltInCategory, _category[k].Id)
cats = app.Create.NewCategorySet()
cats.Insert(doc.Settings.Categories.get_Item(builtInCategory))
if _instance[k]:
bind = app.Create.NewInstanceBinding(cats)
else:
bind = app.Create.NewTypeBinding(cats)
opt = ExternalDefinitionCreationOptions(_paramName[k], _paramType[k])
opt.Visible = _visible[k]
if isinstance(_paramName[k], list):
for i in _paramName[k]:
message = addParam(doc, i, _visible[k], _instance[k], _groupName[k], _paramGroup[k], k)
else:
message = addParam(doc, _paramName[k], _visible[k], _instance[k], _groupName[k], _paramGroup[k],k)
k=k+1
# "End" the transaction
TransactionManager.Instance.TransactionTaskDone()
#Assign your output to the OUT variable
if message == None:
OUT = "Success"
else:
OUT = message
Photos
hxrel-u
Plugin pour Grasshopper et Rhino 8 destiné à la fabrication additive et à la conception avancée, introduisant la modélisation implicite et voxel pour la création de géométries complexes.
Outil web de génération de familles Revit paramétriques à partir de descriptions textuelles, d'URL de produits ou de fiches techniques, destiné aux modeleurs BIM et architectes.
Modeleur BIM textuel fonctionnant entièrement dans le navigateur, permettant d'écrire des scripts Python pour générer des fichiers intermédiaires et compiler des modèles en IFCX pour la visualisation.
Plugin connectant les assistants IA Claude et GPT à Autodesk Revit pour créer et modifier par le langage naturel des éléments BIM natifs destinés aux architectes et modeleurs.
Plugin natif pour Revit dédié à la tuyauterie industrielle, permettant de calculer automatiquement des chemins 3D, d'insérer des composants et d'exporter des fichiers PCF.
Outil de conception architecturale assistée par IA générant des modèles 3D et des perspectives à partir de dialogues en langage naturel pour les architectes, paysagistes et fabricants.
Plugin Revit qui automatise le placement des étiquettes sur les vues MEPF selon des règles configurées, sans recouvrement, tout en incluant des utilitaires de production de réseaux.
Plugin de modélisation et de dessin de détail pour structures métalliques, escaliers et garde-corps, utilisé dans Advance Steel et Inventor.
Logiciel de CAO 2D et 3D orienté dessin DWG, permettant aux architectes, ingénieurs et modeleurs de produire et modifier des plans, annotations et mises en page tout en exploitant des...
Plugin pour Archicad qui étend les capacités d'import de modèles 3D tiers grâce à un éditeur visuel interactif et une conversion en objets GDL natifs.
Outil en ligne convertissant des fichiers Revit plus récents vers le format 2023, prenant en charge les projets RVT, familles RFA et gabarits pour les architectes et modeleurs BIM.
Application web reliant les modèles configurables d Inventor à Revit pour générer des variantes et des sorties de fabrication destinées aux fabricants et architectes.
Plugin métier pour Rhino dédié à la modélisation 3D d'installations CVC, plomberie, VMC et tuyauterie industrielle intégrant des outils paramétriques et des fonctions de calcul.
Extension pour Archicad dédiée à la modélisation de structures bois et acier léger, permettant de concevoir l'ossature, de générer des plans de fabrication et des listes de coupe.
Logiciel de CAO généraliste pour produire et modifier des plans 2D, des modèles 3D et leur documentation, incluant sept jeux d'outils métier.
Logiciel de conception 3D dédié aux ouvrages de métallerie et charpente, permettant une modélisation associative et paramétrique intégrée au contexte BIM pour automatiser les dossiers de fabrication.
Gamme de bibliothèques logicielles pour l'intégration, la conversion, le maillage et la visualisation de modèles IFC et STEP, destinée aux développeurs et intégrateurs de systèmes BIM et CAO.
Outil de gestion de données BIM et PMI basé sur le schéma ISO 10303, permettant de restructurer, transformer et transférer des modèles IFC et STEP via une interface de programmation...
Logiciel de calcul et d’analyse par éléments finis pour structures complexes, permettant de modéliser la géométrie et les chargements avec une séparation explicite entre structure et modèle d’analyse.
Plugin pour Rhino et Grasshopper facilitant l'import, la manipulation, la conversion et l'export de fichiers IFC, permettant aux modeleurs BIM et architectes de structurer leurs données IFC.
Plugin pour Revit facilitant l'import, l'export et la manipulation de données IFC, permettant notamment la mise à jour itérative de modèles et la gestion fine des propriétés et identifiants GUID.
Application de modélisation 3D paramétrique open source dédiée à la conception technique, au BIM et à la fabrication, permettant de gérer des projets complexes via des ateliers spécialisés.
Plateforme de gestion des exigences d'information BIM permettant de structurer des catalogues réutilisables, de générer des modèles logiciels et de définir des règles de contrôle pour les projets.
Logiciel SIG bureautique centralisant cartes 2D, scènes 3D et données spatiales pour visualiser, éditer et analyser des projets complexes, notamment dans les domaines de l'urbanisme et des infrastructures.
hxrel-m
Plateforme collaborative pour projets de construction, elle centralise GED, visas, planning Gantt, partage documentaire et visionneuse BIM, avec des services métiers intégrés et une application mobile.
A la une
Plateforme cloud de gestion des quantités de construction à partir de maquettes BIM, elle lit les fichiers IFC et Revit, extrait les métadonnées, relie les éléments à des métrés visuels...
A la une
Outil open source de gestion et d'exploration de données d'actifs centré sur COBie, permettant de parcourir les équipements, gérer les documents et auditer la qualité des classeurs directement dans le...
Plateforme d'analyse de maquettes numériques fédérées au format IFC permettant de détecter des risques constructifs et d'assurer une révision professionnelle via BCF.
Plateforme web regroupant une bibliothèque d'analyse spatiale et des applications de modélisation topologique pour les BIM managers et architectes.
Plateforme cloud de coordination BIM centrée sur l'examen et la hiérarchisation des résultats de détection de clashes pour les professionnels du bâtiment.
Logiciel de planification de chantier orienté Gantt ouvrant directement les fichiers Microsoft Project et Primavera P6 pour les enregistrer en IFC.
Service logiciel de génération d'applications internes pour Revit, AutoCAD et Autodesk Construction Cloud à partir de descriptions en langage naturel, avec gestion des versions et déploiement ciblé.
Connecteur cloud reliant Autodesk Forma et Bluebeam pour faire circuler des PDF de revue entre les environnements, conserver les annotations via le slip sheeting et prendre en charge les transferts...
Plateforme de conception de bâtiments et de structures physiques fondée sur OpenGeometry, associant utilisateurs et agents dans un processus de co-conception.
Bibliothèque JavaScript permettant d'intégrer une cartographie interactive 2D et 3D dans des pages web à partir des fonds et services IGN pour les développeurs et urbanistes.
Plateforme de gestion centralisée des données produit et documents de conformité permettant aux fabricants de structurer, qualifier et diffuser leurs informations techniques vers l'écosystème aval.
hxrel-t
Plateforme de création d'applications métier permettant aux professionnels de l'architecture, de l'ingénierie et de la construction de concevoir des outils en décrivant leurs besoins en langage naturel.
Plateforme d'intelligence artificielle combinant un assistant conversationnel et des agents autonomes pour les bureaux d'études et entreprises de construction, intégrant une base normative sectorielle.
Agent intelligent destiné aux ingénieurs en infrastructure et en structure, capable de réaliser de bout en bout des travaux de calcul, de rédaction de rapports et de production de plans...
Solution cloud d automatisation et de production de documentation 2D à partir de modèles Revit, IFC et Rhino, conçue pour générer des plans, coupes, élévations et appliquer des annotations paramétrables.
Service logiciel de génération d'applications internes pour Revit, AutoCAD et Autodesk Construction Cloud à partir de descriptions en langage naturel, avec gestion des versions et déploiement ciblé.
Plateforme d'intégration sans code ou à faible code connectant les modules Forma à des applications tierces pour automatiser les workflows et synchroniser les documents et données projet.
Plateforme d'analyse documentaire assistée par IA dédiée aux appels d'offres et contrats, permettant de structurer, comparer et vérifier la conformité des dossiers pour les équipes de construction.
Outil de gestion de données BIM et PMI basé sur le schéma ISO 10303, permettant de restructurer, transformer et transférer des modèles IFC et STEP via une interface de programmation...
Solutions citées
Réponses
Il n y a pas encore de réponses, soyez le premier à rejoindre la discussion !
Soyez le premier à laisser un commentaire.
