Question sur l'API Design Automation.

Est-il possible de créer un script Design Automation qui supprime le partage de projet afin que Design Automation puisse travailler sur le reste du fichier, puis supprimer ce fichier.

Par exemple, puis-je utiliser Design Automation pour supprimer les sous-projets, puis procéder à l'exportation des paramètres du fichier sans enregistrer sur la version partagée?

De plus, je suis connecté à la démo d'importation et d'exportation Revit Excel.

Chaque fois que je configure l'AppBundle, je reçois un message d'échec comme indiqué dans l'image ci-dessous:

enter image description here

1
M Scott 19 févr. 2021 à 02:09

1 réponse

Meilleure réponse

Pour ouvrir le modèle partagé avec les sous-projets supprimés, vous devez:

  1. Supprimez l'option /i de commandLine dans votre activité. Spécifiez un localName codé en dur pour votre argument d'entrée (disons input.rvt). Ainsi
{
  "alias": "prod",
  "activity": {
    "id": "YourActivity",
    "commandLine": [ "$(engine.path)\\\\revitcoreconsole.exe /al $(appbundles[YourBundle].path)" ],
    "parameters": {
      "rvtFile": {
        "zip": false,
        "ondemand": false,
        "verb": "get",
        "description": "Input Revit model",
        "required": true,
        "localName": "input.rvt",
      }
    },
    "engine": "Autodesk.Revit+2020",
    "appbundles": [ "YourName.YourBundle+label" ],
    "description": "Bundle description."
  }
}
  1. Ouvrez le fichier input.rvt dans votre ensemble d'applications en utilisant DetachAndDiscardWorksets comme suit:
   ModelPath path = ModelPathUtils.ConvertUserVisiblePathToModelPath("input.rvt");
   var opts = new OpenOptions
   {
      DetachFromCentralOption = DetachFromCentralOption.DetachAndDiscardWorksets
   };
   var document = application.OpenDocumentFile(path, opts);

Pour plus de détails, vous pouvez consulter l 'annonce du blog et une réponse relative au débordement de pile.

Par défaut, (suite à l 'annonce du blog ) Design Automation essaiera d'ouvrir les modèles partagés avec DetachAndPreserveWorksets si l'option /i est fournie dans commandLine. Cela ne fonctionnera cependant que si le fichier d'entrée est un fichier central. Cela ne fonctionnera pas pour un fichier local avec des sous-projets, car le fichier appartient à un certain utilisateur.

2
Rahul Bhobe 19 févr. 2021 à 00:32